本书给出了以下代码:
var optionalString: String? = "Hello"optionalString == nilvar optionalname: String? = "John Appleseed"var greeting = "Hello!"if let name = optionalname { greeting = "Hello,\(name)"}
使用if name = optionalname,而不是optionalname!= nil(并始终将其称为,optionalname),有什么好处?有什么区别,还是仅仅是惯例?
因为它还解包了可选值,所以这段代码:if let name = optionalname { greeting = "Hello,\(name)"}
相当于:
if optionalname != nil { let name:String = optionalname! greeting = "Hello,\(name)"}
这种语言糖在Swift中被称为Optional Binding.
可选类型
在Swift T和T?是不是相同的类型,但可选T的基础值?类型可以很容易地实现使用!后缀运算符,例如:
let name:String = optionalname!
现在可以在需要String的地方使用,例如:
func greet(name:String) -> String { return "Hello,\(name)"}greet(name)
虽然这样做是安全的,但Swift确实允许你隐式转换为可选类型:
let name = "World"let optionalname: String? = namefunc greet(optionalname:String?) -> String? { if optionalname != nil { return "Hello,\(optionalname)" } return nil}//Can call with either String or String?greet(optionalname)greet(name)总结
以上是内存溢出为你收集整理的为什么我会使用if和let,而不仅仅是检查原始变量是否为零? (迅速)全部内容,希望文章能够帮你解决为什么我会使用if和let,而不仅仅是检查原始变量是否为零? (迅速)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)