[Go言語] 豆知識、小ネタ
まだまだよくわかっていないGo言語。
何をするにもどん詰まる。とにかく小ネタを記録する。
s[0] = 'a'
fmt.Printf("result=%s",string(s) )
b := []byte(s)
m["first"] = "test"
fmt.Printf("result=%s",m )
m := make(map[string]interface{})
m["f"] = "test"
r,_ := json.Marshal(m);
fmt.Printf("result=%s",string(r) )
何をするにもどん詰まる。とにかく小ネタを記録する。
byte配列を文字列(string)に変換する
var s = make([]byte,10)s[0] = 'a'
fmt.Printf("result=%s",string(s) )
stringをbyte配列に変換する
s := "test"b := []byte(s)
何でも入るmapを作る(keyは文字列)
m := make(map[string]interface{})m["first"] = "test"
fmt.Printf("result=%s",m )
mapをJSON化する
"encoding/json"のimportが必要m := make(map[string]interface{})
m["f"] = "test"
r,_ := json.Marshal(m);
fmt.Printf("result=%s",string(r) )
JSON文字列をmap化する
"encoding/json"と"strings"のimportが必要
s := strings.NewReader(`{"f":"test"}`)
d := json.NewDecoder( s )
m2 := make(map[string]interface{})
d.Decode(&m2)
fmt.Printf("result=%s",m2 )
TimeをJSON化する
time.Timeはjson.MarshalでJSON化してくれないようだ。
というわけで、マニュアルでJSON化。
t := time.Now()
s,_ := t.MarshalJSON()
fmt.Printf( "%s", s )
stringからReaderを作成する
import (
"strings"
)
s := strings.NewReader(`{"f":"test"}`)
Readerからbyte配列に変換する
import (
"bytes"
"strings"
)
r := strings.NewReader("hoge")
var buf bytes.Buffer
buf.ReadFrom(r)
b := buf.Bytes()
文字列リテラルのダブルクォートの代わり
HTMLでは、文字列リテラルを定義するのにダブルクォーテーションの他にシングルクォートが使えるがGo言語ではできないようだ。
その代わりにGo言語では`(バッククォート)を使う。へぇ〜
コメント
コメントを投稿