单引号,包含swift中的字符

Abh*_*yan 10 swift

我已经完成了C,C++,Java,这些语言告诉我字符用单引号括起来(大多数时候遵循正确的语法)但字符串是双引号.是swift的语法只允许字符在单引号内,或者提供这种语法背后有一些有效的理由(逻辑).

let char1: Character = "A" //correct 

let char2: Character = 'B' //incorrect 
Run Code Online (Sandbox Code Playgroud)

das*_*ght 8

自第一个C编译器开发以来,编译器技术的状态发生了很大变化.在没有程序员帮助的情况下,编译器在自己搞清楚事物方面变得更聪明,包括预期的表达类型.

找出char与字符串文字是一个这样的例子.从理论上讲,今天C的结构允许在许多情况下推断文字的类型.例如,在下面的代码中,编译器有足够的信息来处理单字符字符串,就像它们是字符文字一样:

void foo(char c);
char s[] = "xyz";
// None of the below would compile
char a = "a";
foo("b");
if (s[1] == "c") {
    ...
}
Run Code Online (Sandbox Code Playgroud)

返回的时间,但是,它更容易让程序员告诉编译器"a","b""c"实际上'a','b''c'.此外,由于函数原型直到ANSI C foo("b")才被引入,因此在该语言的原始K&R版本中甚至无法进行推理.

当语言具有类型推断系统时,不再需要程序员的帮助,因此Swift设计者决定统一字符串和字符常量的语法.


Mor*_*lde 7

在Swift中没有单引号这样的东西.

声明字符的唯一方法是使用显式Character类型.

let a: Character = "a"
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关Swift词汇结构的更多信息,请访问https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/LexicalStructure.html