TOP ▲
itcore TOP
> TIPS
> go_2string.php
タグ:go interface string 型変換 GO言語 interface{}データをstringに変換する、 | itcore 2021年
// valueをstringに変換する。
func uConvStrInterface(value interface{}) string {
// panicリカバリ
defer func() {
if err := recover(); err != nil {
log.Println("ERROR15 uConvStrInterface err=", err, " value=", value)
}
}()
// 各種の型をstringに変換する。
valueStr := ""
switch v := value.(type) {
case string:
valueStr = v
case int:
valueStr = strconv.Itoa(v)
case float64:
valueStr = strconv.FormatFloat(v, 'f', -1, 64)
case bool:
valueStr = strconv.FormatBool(v)
case []interface{}:
for _, v2 := range v {
v2_str := uConvStrInterface(v2) // 再帰
valueStr += v2_str + ","
}
valueStr = valueStr[:len(valueStr)-1]
//valueStr = "interface908" // debug
case map[string]interface{}:
bytes, _ := json.Marshal(v)
valueStr = string(bytes)
default:
valueStr = ""
//valueStr = v.(string) // debug エラーを出して型を確認する。
}
return valueStr
}