-1
我讀過Non-optional shown as optional on print但這並沒有幫助我的問題。爲什麼將非可選值打印爲可選值?
我返回一個Integer,但是一旦它打印出來,它就會被打印爲可選項。爲什麼?
我正試圖解決代碼挑戰。我們的目標是:
寫出返回一個特定的數字出現在任何數量的次數 整數集合的擴展。
這是我實現:
extension Collection where Iterator.Element == Int {
func challenge37(count character : Character) -> Int?{
guard nil != Int(String(character)) else{
print("character wasn't an integer")
return nil
}
var counts : [Int] = []
for item in self{
var counter = 0
let stringInt = String(describing: item)
for currentCharacter in stringInt.characters{
if character == currentCharacter{
counter += 1
}
}
counts.append(counter)
}
guard let min = counts.min() else{
print("no min")
return nil
}
return min
}
}
正如你可以在這裏看到我打印出來:
print([5,15,512,522].challenge37(count: "5")) // Optional(1)
儘管鏈接的問題似乎非常相關,但OP的混淆是由於不注意*可選*返回類型 – Honey
鏈接的問題是關於隱式解包的選項的字符串插值,所以我不認爲是非常相關的。 - 在你的情況下,你有一個返回'Int?'的函數,並將其打印爲可選項,所以我想知道爲什麼它根本不清楚(或值得自己回答的問題)。 –
@MartinR'return min'行被解包,新手可能認爲它應該返回非可選 – Honey