在下面的代碼中,爲什麼expectctingThisToBeOptional類型爲String而不是String類型!當getOptional()返回一個String!定義函數返回一個可選項,但它返回一個非可選項
func getOptional() -> String!
{
var s:String! = "Hello"
return s
}
if let expectingThisToBeOptional = self.getOptional()
{
// attempting to use expectingThisToBeOptional! gives error saying type is String not String!
}
else
{
// why does execution come here when run?
}
在問題代碼中,可選項不是零,那麼爲什麼else分支仍然在執行? – Gruntcakes
@Sausages該問題顯示的代碼不可能是所有問題的代碼 - 例如,該函數是通過引用「self」來調用的。我懷疑他在實際使用中的功能(我認爲是一種方法)的代碼比我們看到的要多,並且有時會返回零。因爲從我們可以看到它永遠不會執行else塊。 – Jiaaro