我有一個簡單的功能:
private func formatted(phoneNumber: String, mask: String) -> String {
var output = ""
var index = phoneNumber.startIndex
for character in mask where index < phoneNumber.endIndex {
if character == "_" {
output = phoneNumber[index] //hers is an error
index = phoneNumber.index(after: index)
} else {
output = String(character)
}
}
return output
}
我應該怎么做才能修復該錯誤?
我怎么稱呼它?
formatted(phoneNumber: "12345678", mask: " ___ __ ___") // " 123 45 678"
uj5u.com熱心網友回復:
請注意,字串下標回傳 a Character,但 =只能用于將字符序列添加到字串:
static func = <Other>(lhs: inout String, rhs: Other) where Other : Sequence, Character == Other.Element
因此 Swift 將下標決議為接受一個范圍并回傳 a 的下標Substring,并說這index不是一個范圍。
你可以創建一個CollectionOfOne//出來的字符String,Array然后用它 =來連接
output = CollectionOfOne(phoneNumber[index])
要不就:
output.append(phoneNumber[index])
同樣的事情也適用于 else 分支:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/437509.html
