一度、stringに変換してから、strconv.Atoiでint型へ変換する必要がある
1 2 |
yuta / tmp golang cat /tmp/history 2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package main import ( "fmt" "os" "reflect" "strconv" ) func main() { file, err := os.Open("/tmp/history") if err != nil { panic(err) } defer file.Close() buf := make([]byte, 32) for { n, err := file.Read(buf) if n == 0 { break } if err != nil { panic(err) } } fmt.Println(buf) // bufのリスト fmt.Println(reflect.TypeOf(buf)) // unit8のリストであることがわかる fmt.Println(buf[0]) // リストの0個目 fmt.Println(string(buf[0])) // stringに一度変換 str_buf := string(buf[0]) fmt.Println(str_buf) fmt.Println(reflect.TypeOf(str_buf)) i, _ := strconv.Atoi(str_buf) // stringからintへ変換 fmt.Println(i) fmt.Println(reflect.TypeOf(i)) } |
出力結果
1 2 3 4 5 6 7 8 |
[50 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] []uint8 50 2 2 string 2 int |