0
可选的值转换为强制值的工作原理相当简单:如何将包含的强制值转换为包含的可选值?
var aString: String? = "Hello"
var anotherString: String = aString!
而且它甚至在相反的方向上更简单,因为没有解包:
var myString: String = "Hello"
var myOtherString: String? = myString
这是一个稍微复杂转换含有强迫包含可选值,在强制值阵列中的强制值数组值:
var anArray: Array<String?> = ["Hello"]
var anotherArray: Array<String> = anArray as Array<String>
什么是与此不同的是,您不需要!
来解开价值。你只是告诉它什么类型的期望。
这里是我卡住的地方。反其道而行之,对我来说,应该是这样的:
var myArray: Array<String> = ["Hello"]
var myOtherArray: Array<String?> = myArray as Array<String?>
但这给出了错误:
'String' is not identical to 'String?'
简单地说,因为这,它给出了同样的错误:
VAR myOtherArray: Array = myArray
我以为我对此有一个公正的把握,但现在我不确定。如何将包含的强制值转换为包含的可选值(使用娱乐循环的最简单方法)?
娱乐活动for循环(不理想):
var myArray: Array<String> = ["Hello"]
var myOtherArray: Array<String?> = []
for loopString: String in myArray {
myOtherArray.append(loopString)
}