为什么我会使用if和let,而不仅仅是检查原始变量是否为零? (迅速)

为什么我会使用if和let,而不仅仅是检查原始变量是否为零? (迅速),第1张

概述在 “The Swift Programming Language.”书中,Apple提到在访问可选变量时使用if和let. 本书给出了以下代码: var optionalString: String? = "Hello"optionalString == nilvar optionalName: String? = "John Appleseed"var greeting = "Hell 在 “The Swift Programming Language.”书中,Apple提到在访问可选变量时使用if和let.

本书给出了以下代码:

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,而不仅仅是检查原始变量是否为零? (迅速)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1048724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存