[Go言語] 豆知識、小ネタ

まだまだよくわかっていないGo言語。
何をするにもどん詰まる。とにかく小ネタを記録する。

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言語では`(バッククォート)を使う。へぇ〜

コメント

このブログの人気の投稿

nginxでlocalhostとしてアクセスをサーバーに転送する方法

Android・・・テキスト描画あれこれ, ascent(), descent()等

Android:stateに応じてTextの色を変更する・・・ColorStateList