我已经完成了C,C++,Java,这些语言告诉我字符用单引号括起来(大多数时候遵循正确的语法)但字符串是双引号.是swift的语法只允许字符在单引号内,或者提供这种语法背后有一些有效的理由(逻辑).
let char1: Character = "A" //correct
let char2: Character = 'B' //incorrect
Run Code Online (Sandbox Code Playgroud)
自第一个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设计者决定统一字符串和字符常量的语法.
在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
| 归档时间: |
|
| 查看次数: |
4697 次 |
| 最近记录: |