【发布时间】:2016-09-08 22:57:42
【问题描述】:
String() 和 "" 之间基本上有什么区别
var x = "Test"
x = String()
x = ""
上面这两行会有什么区别吗?
【问题讨论】:
String() 和 "" 之间基本上有什么区别
var x = "Test"
x = String()
x = ""
上面这两行会有什么区别吗?
【问题讨论】:
根据Apple documentation,字符串是等价的:
初始化一个空字符串
要创建一个空字符串值作为构建更长字符串的起点,可以将一个空字符串字面量分配给一个变量,或者使用初始化语法初始化一个新的字符串实例:
var emptyString = "" // empty string literal var anotherEmptyString = String() // initializer syntax
【讨论】:
我的理解是当你设置一个字符串字面量时
var aString = ""
将在某个时候被转换,至少在功能上,
var aString: String = String("")
因此,从技术上讲,您在编译时添加了无意义的工作量,但在任何情况下都应该无关紧要。
【讨论】:
"" 表示String(""),那么String("") 必须表示String(String("")),最终你会无限递归到String(String(String...""...)))
""?我的意思是,你提议的 "" 定义为 String("") 行不通。