range,string

range.go

package main
import "fmt"
func main() {
	var str string = "123いろはabc";
	for pos, char := range str {
    		fmt.Printf("[%c](%x):%d\n", char, char, pos)
	}
}
C:\go>range
[1](31):0
[2](32):1
[3](33):2
[い](3044):3
[ろ](308d):6
[は](306f):9
[a](61):12
[b](62):13
[c](63):14

文字列は3バイトだけど文字として取ってくると2バイト…なの?

昨日のソースもだがコンパイラセミコロン足らないとエラーを吐く
仕様上はいらなそうなところだったりするんだがなんでだろ?