s := "labex" のとき、なぜ fmt.Println(s[0]) は 108 を出力する一方、fmt.Printf("%c", s[0]) は l を出力するのでしょうか?
s := "labex"
fmt.Println(s[0])
108
fmt.Printf("%c", s[0])
l
Go のインデックスは 1 から始まるため、インデックス 0 は 108 番目の文字を意味する。
文字列のインデックス参照はエンコードされたバイト値を返し、%c はその数値コードを文字として表示するため。
%c
Println が文字列の先頭文字を恒久的に整数へ変換するため。
Println
%c は渡された値に関係なく、常に l を出力するため。