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)
}