Swift, похоже, пытается обесценить понятие строки, состоящей из массива атомных символов, что имеет смысл для многих применений, но там очень много программирования, которое включает в себя сбор данных по объектам, которые являются ASCII для всех практических целей: особенно с файловыми вводами/выводами. Отсутствие встроенной функции языка для указания символьного литерала кажется щелевой дырой, т.е. Нет аналога C/Java/etc-esque:
String foo="a"
char bar='a'
Это довольно неудобно, потому что даже если вы преобразуете свои строки в массивы символов, вы не можете делать такие вещи, как:
let ch:unichar = arrayOfCharacters[n]
if ch >= 'a' && ch <= 'z' {...whatever...}
Один довольно хакерский способ обхода - сделать что-то вроде этого:
let LOWCASE_A = ("a" as NSString).characterAtIndex(0)
let LOWCASE_Z = ("z" as NSString).characterAtIndex(0)
if ch >= LOWCASE_A && ch <= LOWCASE_Z {...whatever...}
Это работает, но, очевидно, это довольно уродливо. Кто-нибудь имеет лучший способ?