我已经完成了C,C,Java,并且这些语言告诉我字符用单引号括起来(大多数时候遵循正确的语法)但字符串是双引号.是swift的语法只允许字符在单引号内,或者提供这种语法背后有一些有效的理由(逻辑).
let char1: Character = "A" //correct let char2: Character = 'B' //incorrect
自第一个C编译器开发以来,编译器技术的状态发生了很大变化.在没有程序员帮助的情况下,编译器更加聪明地自己搞清楚事情,包括预期的表达类型.
原文链接:https://www.f2er.com/swift/319473.html找出char与字符串文字是一个这样的例子.从理论上讲,今天C的结构允许在许多情况下推断出文字的类型.例如,在下面的代码中,编译器有足够的信息来处理单字符字符串,就像它们是字符文字一样:
void foo(char c); char s[] = "xyz"; // None of the below would compile char a = "a"; foo("b"); if (s[1] == "c") { ... }
然而,当时要求程序员告诉编译器“a”,“b”和“c”实际上是’a’,’b’和’c’更容易.此外,由于函数原型直到ANSI C才被引入,因此在该语言的原始K& R版本中甚至不可能进行foo(“b”)推断.
当语言具有类型推断系统时,不再需要程序员的帮助,因此Swift设计者决定统一字符串和字符常量的语法.