パラメータとして文字列と範囲をとるスウィフト関数を記述しました。範囲が文字列に対して有効であることを確認するにはどうすればよいですか?Swift:範囲が指定された文字列に対して有効かどうかを確認する方法
編集:スウィフト3で無意味な例
func foo(text: String, range: Range<String.Index>) ->String? {
// what can I do here to ensure valid range
guard *is valid range for text* else {
return nil
}
return text[range]
}
var str = "Hello, world"
let range = str.rangeOfString("world")
let str2 = "short"
let text = foo(str2, range: range!)
あなたが書いたコードを表示してください。 –
あなたのメソッドを呼び出す前にrangeがnilと等しくないかどうかを確認するか、letを使って安全に範囲を取得してください。 –
私は@LeoDabusに同意します。 'range'が' nil'でなければ 'str'に対して有効です。別の言い方をすると、「世界」が存在しない場合、「範囲」は「無」になります。他に何を知りたいですか? – matt