一度、stringに変換してから、strconv.Atoiでint型へ変換する必要がある
yuta / tmp golang cat /tmp/history 2
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))
}
出力結果
[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
