Go言語入門:string型の使い方の確認

Go Playground - The Go Programming Language

package main

import (
    "fmt"
    "reflect"
)

func main() {

    fmt.Printf("Go言語におけるstring型は「不変(immutable)なバイト型のスライス」らしい\n")
    s := "hello, world" // 宣言

    // immutable==再代入不可なので以下は失敗する
    // s[0] = "a"

    fmt.Printf("以下はルーン数ではなく、バイト数を取得する : %d\n", len(s))
    fmt.Printf("バイト型のスライスの要素を取得するとuint8型の数値が得られる : %d\n", s[0])
    fmt.Printf("string()を使うとアルファベット(string型)に変換できる : %s\n", string(s[0]))
 
    // 実際にstring型になっていることの確認
    fmt.Println(reflect.TypeOf(string(s[0])))

    // イテレート例
    for i := 0; i < len(s); i++ {
        fmt.Println(string(s[i]))
    }
 
    // 単に全てを出力するだけなら
    fmt.Println(s[:len(s)]) // 明示的に末尾を指定
    fmt.Println(s[:])       // s[:]とすると配列全体が参照される
 
}

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */