【问题标题】:Difference between String() and "" [duplicate]String() 和“”之间的区别 [重复]
【发布时间】:2016-09-08 22:57:42
【问题描述】:

String()"" 之间基本上有什么区别

var x = "Test"
x = String()
x = ""

上面这两行会有什么区别吗?

【问题讨论】:

    标签: swift string


    【解决方案1】:

    根据Apple documentation,字符串是等价的:

    初始化一个空字符串

    要创建一个空字符串值作为构建更长字符串的起点,可以将一个空字符串字面量分配给一个变量,或者使用初始化语法初始化一个新的字符串实例:

    var emptyString = ""               // empty string literal
    var anotherEmptyString = String()  // initializer syntax
    

    【讨论】:

    • 我不知道反对票来自哪里;这是正确的答案。
    【解决方案2】:

    我的理解是当你设置一个字符串字面量时

    var aString = ""

    将在某个时候被转换,至少在功能上,

    var aString: String = String("")

    因此,从技术上讲,您在编译时添加了无意义的工作量,但在任何情况下都应该无关紧要。

    【讨论】:

    • 废话。这是一个递归定义。如果"" 表示String(""),那么String("") 必须表示String(String("")),最终你会无限递归到String(String(String...""...)))
    • 或者如果它在字符串初始化器中它只是不这样做......?编译器没那么笨……
    • 那么它怎么知道如何处理""?我的意思是,你提议的 "" 定义为 String("") 行不通。
    • 我的建议是使用这种叫做“编程”的花哨的东西,例如,如果“”介于 () { 不要更改它}
    • 是的。这和你说的不一样。
    猜你喜欢
    • 2013-06-25
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2016-09-30
    • 2013-07-27
    • 2011-06-14
    • 2013-12-20
    • 2014-02-18
    相关资源
    最近更新 更多