Go のルーンリテラル

net/http のソースコードを読んでいるときにシングルクオーテーションが出てきた。そもそも Go におけるシングルクオーテーションってなんなのかよくわかってなかったのでメモ。

golang.jp から引用。

ルーンリテラルは、ルーン定数であり、Unicode コードポイントに一致する整数値です。ルーンリテラルは一文字以上の文字をシングルクォートでくくって表現します。クォート内にはシングルクォートと改行を除くどんな文字も記述できます。バックスラッシュを使用したマルチ文字シーケンスの各書式でエンコードすることで、シングルクォート文字自体の Unicode 値も表せます。

net/http では、ルーティングルールを追加するとこで出てくる。その雰囲気を 10% くらい残してサンプルを書くとこんな感じ。

package main

import (
    "fmt"
)

func main() {
    pattern := "/poyo/"
    n := len(pattern)
    if pattern[n-1] == '/' {
        fmt.Printf("pattern[%d]: '/'(%d)\n", n-1, '/') // pattern[5]: '/'(47)
    }
}

ダブルクオーテーションと見間違えないようにしたい。

comments powered by Disqus