LoginSignup
7
8

More than 3 years have passed since last update.

Swiftの#lineと#columnについて

Posted at

基本

#lineはコード上の行番号、#columnはコード上の列番号を示す

let res1 = #line
let res2 = #column

print(res1) // 1
print(res2) // 12

行番号は1から数えるので、ファイルの先頭で#lineを呼んでいる場合は1になる。
列番号も同様に、1から数える。上の例では#の位置は12文字目なので12になる

列番号がおかしくなる時

let res1 = #line
let res2あ = #column

print(res1) // 1
print(res2あ) // 15

上の例の変数名res2に平仮名を一文字足してres2あとしてみた。
結果は15になる。
基本の項では、行番号と解説したが#columnの実態はutf8のバイト数である。

"let res2あ = #".utf8.count //15

#columnまでの文字をutf8にして数えると、#columnがいくつを指すか調べることができる。
(上の例では#を含めて#columnが返す値を計算している)

utf8とは

いろんな文字を表現するために、人間の読む文字とコンピュータの読む文字の対応表で変換する方式みたいなもの。
例えば上の例で出てきた「あ」は「E3 81 82」で3byte使う

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8