Go--类型转换
1 int与string
备注:string不可直接转int32,先转为int,再转成int32
package main import ( "fmt" "strconv" ) func main() { //int 转 string var a int = 3 str := strconv.Itoa(a) fmt.Printf("str:类型:%T 值:%s\n", str, str) var aa string = "2" aaa, _ := strconv.Atoi(aa) fmt.Printf("aaa:类型:%T 值:%d\n", aaa, aaa) //int32 转 string var b int32 = 3 str32 := fmt.Sprint(b) fmt.Printf("str32:类型:%T 值:%s\n", str32, str32) var bb string = "2" bbb, _ := strconv.Atoi(bb) bbbb := int32(bbb) fmt.Printf("bbbb:类型:%T 值:%d\n", bbbb, bbbb) //int64转string var c int64 = 3 str64 := strconv.FormatInt(c, 10) //10进制 fmt.Printf("str64:类型:%T 值:%s\n", str64, str64) var cc string = "2" ccc, _ := strconv.ParseInt(cc, 10, 64) fmt.Printf("ccc:类型:%T 值:%d\n", ccc, ccc) }
2 float与string
备注:string不可直接转float32,先转成float64,再转成float32
package main import ( "fmt" "strconv" ) func main() { //float32转string var d float32 = 0.998 flo32 := fmt.Sprintf("%f", d) fmt.Printf("flo32:类型:%T 值:%s\n", flo32, flo32) var dd string = "0.998" ddd, _ := strconv.ParseFloat(dd, 32) dddd := float32(ddd) fmt.Printf("dddd:类型:%T 值:%f\n", dddd, dddd) //float64转string var e float64 = 0.998 flo64 := strconv.FormatFloat(e, 'f', -1, 32) fmt.Printf("flo64:类型:%T 值:%s\n", flo64, flo64) var ee string = "0.998" eee, _ := strconv.ParseFloat(ee, 64) fmt.Printf("ddd:类型:%T 值:%f\n", eee, eee) }
3 结构体与JSON序列化
package main import ( "encoding/json" "fmt" ) type test struct { Name string Age int } func main() { c := &test{ Name: "tom", Age: 12, } //JSON序列化:结构体-->JSON格式的字符串 data, err := json.Marshal(c) if err != nil { fmt.Println("json marshal failed") return } fmt.Printf("json:%s\n", data) //JSON反序列化:JSON格式的字符串-->结构体 str := `{"name":"jer","id":0,"sex":"man"}` type test2 struct { Name string Id int Sex string } c1 := &test2{} err = json.Unmarshal([]byte(str), c1) if err != nil { fmt.Println("json unmarshal failed!") return } fmt.Printf("%#v\n", c1) }
输出:
json:{"Name":"tom","Age":12} &main.test2{Name:"jer", Id:0, Sex:"man"}
4 map与string
map转string
package main import ( "encoding/json" "fmt" ) func main() { //创建map s2 := make(map[string]int) ... s3, _ := json.Marshal(s2) str := string(s3) fmt.Println(str) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-11-15 LVM----从CentOS7默认安装的/home中转移空间到根目录/(转载)