【发布时间】:2015-01-19 04:56:26
【问题描述】:
遵循了一些关于 Swift 的不同教程,并注意到了这种差异。是否存在两条线的功能不同的情况,或者这更像是一种风格偏好?
var newString:NSString = "Test String"
和
var newString = "Test String" as NSString
【问题讨论】:
-
你为什么需要它成为一个 NSString 呢?只需说
var newString = "Test String"并停止。 -
@matt NSString 有一些其他的功能作为 swift 字符串。而且由于 swift 不允许隐式类型转换,例如当一个函数只接受 NSStrings 时,你必须自己做。
-
@Simon 不,你没有。嗯,大多数情况下你不知道。在极少数情况下,您不能将 Swift 字符串直接传递给 Cocoa。 Swift 确实 允许隐式类型转换 - 桥接类型。而String-to-NSString是一种桥接类型。
-
不一定是 NSString,更多的是关于“as”和“:”的问题。另一个更简单的例子: var newInt = 3.0 as Double 或 var newInt:Double = 3.0
-
@Simon 事实上,在他的第一个示例
var newString:NSString = "Test String"中,正是这种隐式类型转换!"TestString"以 Swift String 开始,但可以直接分配给 NSString 变量,无需强制转换。