Golang转字符串

在Go语言中,字符串是一个不可变的字节序列。在编程中经常会遇到需要将其他类型数据转换为字符串的情况,本文将介绍在Go语言中如何进行各种类型数据到字符串的转换。
基本数据类型转字符串
int转字符串
package main
import (
"fmt"
"strconv"
)
func main() {
num := 123
str := strconv.Itoa(num)
fmt.Println(str)
}
运行结果:
123
float64转字符串
package main
import (
"fmt"
"strconv"
)
func main() {
num := 3.14
str := strconv.FormatFloat(num, 'f', -1, 64)
fmt.Println(str)
}
运行结果:
3.14
bool转字符串
package main
import (
"fmt"
)
func main() {
b := true
str := fmt.Sprintf("%t", b)
fmt.Println(str)
}
运行结果:
true
数组、切片和Map转字符串
数组转字符串
package main
import (
"fmt"
"strings"
)
func main() {
arr := []int{1, 2, 3, 4, 5}
str := fmt.Sprintf("%v", arr)
fmt.Println(str)
}
运行结果:
[1 2 3 4 5]
切片转字符串
package main
import (
"fmt"
"strings"
)
func main() {
slice := []string{"apple", "banana", "cherry"}
str := strings.Join(slice, ",")
fmt.Println(str)
}
运行结果:
apple,banana,cherry
Map转字符串
package main
import (
"fmt"
)
func main() {
m := map[string]int{
"apple": 2,
"banana": 3,
}
str := fmt.Sprintf("%v", m)
fmt.Println(str)
}
运行结果:
map[apple:2 banana:3]
结构体转字符串
自定义结构体转字符串
package main
import (
"fmt"
)
type Person struct {
Name string
Age int
}
func (p Person) String() string {
return fmt.Sprintf("Name: %s, Age: %d", p.Name, p.Age)
}
func main() {
p := Person{Name: "Alice", Age: 30}
str := fmt.Sprint(p)
fmt.Println(str)
}
运行结果:
Name: Alice, Age: 30
将接口类型转换为字符串
package main
import (
"fmt"
"reflect"
)
func ToString(i interface{}) string {
switch v := i.(type) {
case int:
return strconv.Itoa(v)
case float64:
return strconv.FormatFloat(v, 'f', -1, 64)
default:
return fmt.Sprintf("%v", v)
}
}
func main() {
fmt.Println(ToString(42))
fmt.Println(ToString(3.14))
fmt.Println(ToString("hello"))
}
运行结果:
42
3.14
hello
以上就是在Go语言中实现各种数据类型转换为字符串的方法。
极客笔记