なぜSwiftにString.charAt(index)が無いの

JavaでString.charAt(int)はよく使ってたので

利用頻度が低いんでしょうかね?

let str0 = "abc"
let index0 = str0.index(str0.startIndex, offsetBy: 1)
print("str0[\(1)]=\(str0[index0])")

ってやれば”b”が出力されるんですけど、

str0.charAt(1)

とやりたい。仕方ないので、String構造体を拡張します。

 

extension String{
 func charAt(index : Int) -> Character?{
  guard index < self.count else {
   // print("guard")
   return nil
  }
  let i  =  self.index(self.startIndex, offsetBy: index)
  return self[i]
 }
}

 

Swiftの文法はだいぶ馴染みましたが、まだまだ理解に苦しむところがあります。Javaプログラマを長くやり過ぎたかな。

さてと、バイナリーサーチのロジック書かなきゃ。