为了账号安全,请及时绑定邮箱和手机立即绑定

怎么理解swift中的可选变量赋值

怎么理解swift中的可选变量赋值

米脂 2019-03-29 22:11:00
varoptionalString:String?="Hello"optionalString==nilvaroptionalName:String?="JohnAppleseed"vargreeting="Hello!"ifletname=optionalName{greeting="Hello,\(name)"}如上代码:?=赋值适用于什么场景
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

这个问题这样问说明没理解“可选型”——这不是“?=”赋值,而是定义变量为String?类型,这个类型在没有任何值的时候是nil;而在有值的时候会被表示成some:"xxxx"这样。
当你需要操作这个String?型变量的时候,你需要用!把它转成String类型,这时候它的值就是"xxxx"了
                            
查看完整回答
反对 回复 2019-03-29
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

据我猜想是这样的:因为Swift其实是门静态类型语言,而变量类型的确定是依赖于变量初值的,如果你需要一个初值为nil的String变量,那么你可能会直接这么写:
varoptionalName=nil
但这样写就麻烦了,因为这样编译器就没法从nil分析出这变量的类型了,但如果是String(nil)的话,实际上就不一定是返回nil了(而是调用构造器)。所以Swift送给程序员一个:类型?=初值的语法好让程序员们将初值赋为nil并仍保证自身是静态类型。
                            
查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 374 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号