猿问

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

varoptionalString:String?="Hello"
optionalString==nil
varoptionalName:String?="JohnAppleseed"
vargreeting="Hello!"
ifletname=optionalName{
greeting="Hello,\(name)"
}
如上代码:?=赋值适用于什么场景
米脂
浏览 375回答 2
2回答

蝴蝶不菲

这个问题这样问说明没理解“可选型”——这不是“?=”赋值,而是定义变量为String?类型,这个类型在没有任何值的时候是nil;而在有值的时候会被表示成some:"xxxx"这样。当你需要操作这个String?型变量的时候,你需要用!把它转成String类型,这时候它的值就是"xxxx"了

德玛西亚99

据我猜想是这样的:因为Swift其实是门静态类型语言,而变量类型的确定是依赖于变量初值的,如果你需要一个初值为nil的String变量,那么你可能会直接这么写:varoptionalName=nil但这样写就麻烦了,因为这样编译器就没法从nil分析出这变量的类型了,但如果是String(nil)的话,实际上就不一定是返回nil了(而是调用构造器)。所以Swift送给程序员一个:类型?=初值的语法好让程序员们将初值赋为nil并仍保证自身是静态类型。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答