の
subscript (r: Range<Int>) -> String {
let start = characters.index(startIndex, offsetBy: r.lowerBound)
let end = <#T##String.CharacterView corresponding to `start`##String.CharacterView#>.index(start, offsetBy: r.upperBound - r.lowerBound)
return self[(start ..< end)]
}
Screenshotあなたがする必要があるのは、インデックスの前のcharacters
を追加することです。コンパイラはまた、String.CharacterView corresponding to
開始##String.CharacterView
を追加するヒントを提供します。メッセージは多少曖昧ですが、大きな価値があります!それは文字の配列を期待していることを伝えます。しかし、@vadianが示唆するように、最初からcharacters
を省略することもできます。
私はちょっとしたテストも書いてあります。
import Foundation
extension String {
subscript (r: Range<Int>) -> String {
let start = index(startIndex, offsetBy: r.lowerBound)
let end = index(start, offsetBy: r.upperBound - r.lowerBound)
return self[start..<end]
}
}
let string = "Hello world"
let range = Range(uncheckedBounds: (lower: 0, upper: 2))
let s = string[range] // prints "He"
http://stackoverflow.com/questions/24092884/get-nth-character-of-a-string-in-swift-programming-languageはスウィフト1、2、3 –