gpt4 book ai didi

ios - var someString = “Some String” 和 var someString : String = “Some String” , 之间的区别 var someString = “Some String” as string

转载 作者:搜寻专家 更新时间:2023-10-30 22:24:20 25 4
gpt4 key购买 nike

谁能解释一下区别

var someString = “Some String”
var someString: String = “Some String”
var someString = “Some String” as String
var someString = “Some String” as! String
var someString = “Some String” as? String

最佳答案

let someString = “Some String”
let someString: String = “Some String”

对于这两个:

两者之间的运行时效率差异为零。在编译期间,Swift 会推断类型并将其写入。但是一旦编译,这两个语句是相同的。

let someString = “Some String” as String

意味着如果 someString 值不是字符串,则将其转换为字符串。

let someString = “Some String” as! String

意味着你强行将“Some String”转换为字符串,但如果它不能转换为字符串,那么它会使应用程序崩溃。

let someString = “Some String” as? String

意味着您可以选择将 “Some String” 转换为字符串,这意味着如果它不能转换为字符串,那么它将返回 nil 但此时不会崩溃。

对于最后 3 条语句,它可以编译并工作,但是将 String 转换为 String 肯定是错误的。无需将 String 转换为 String

最后两个 as?as! 在您的情况下总是会成功。

考虑下面的例子:

let stringObject: AnyObject = "Some String"
let someString3 = stringObject as! String
let someString5 = stringObject as? String

这是您需要转换的时候。仅当您知道它是一个字符串时才使用 as!。如果您不知道它是否为字符串,请使用 as?

只有在你确定否则使用条件转换时才使用 as! 强制向下转换:

if let someString5 = stringObject as? String {
println(someString5)
}

关于ios - var someString = “Some String” 和 var someString : String = “Some String” , 之间的区别 var someString = “Some String” as string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com