go 结构体中 struct int互转string
时间: 2023-12-22 12:06:08 浏览: 164
在 Golang 中,可以使用 strconv 包中的函数将 int 类型转换为 string 类型,也可以使用 fmt.Sprintf() 函数将 int 类型格式化为 string 类型。同样,也可以将 string 类型转换为 int 类型。
以下是一个示例代码,演示了如何在嵌套的结构体中将 int 类型转换为 string 类型:
```go
package main
import (
"fmt"
"strconv"
)
type Person struct {
Name string
Age int
}
type Company struct {
Name string
Employee Person
FoundedAt int
}
func (p Person) String() string {
return fmt.Sprintf("%v (%v years)", p.Name, p.Age)
}
func (c Company) String() string {
return fmt.Sprintf("%v, founded in %v, employee: %v", c.Name, c.FoundedAt, c.Employee)
}
func main() {
p := Person{"John", 30}
c := Company{"Golang Inc.", p, 2009}
// 将 int 类型转换为 string 类型
c.FoundedAt = 2010
fmt.Println(c) // Golang Inc., founded in 2010, employee: John (30 years)
// 将 string 类型转换为 int 类型
foundedAt, err := strconv.Atoi("2009")
if err != nil {
fmt.Println(err)
}
c.FoundedAt = foundedAt
fmt.Println(c) // Golang Inc., founded in 2009, employee: John (30 years)
}
```
在上面的示例代码中,我们定义了两个结构体:Person 和 Company。Company 结构体中包含一个 Person 类型的嵌套结构体 Employee 和一个 int 类型的字段 FoundedAt。
在 Person 结构体中,我们定义了一个 String() 方法,用于将结构体格式化为字符串。
在 Company 结构体中,我们也定义了一个 String() 方法,用于将结构体格式化为字符串。在该方法中,我们使用 fmt.Sprintf() 函数将 Employee 结构体格式化为字符串,并将 int 类型的 FoundedAt 字段转换为 string 类型。
在 main() 函数中,我们创建了一个 Person 类型的变量 p 和一个 Company 类型的变量 c,其中 c 的 Employee 字段为 p。我们使用 fmt.Println() 函数将 c 变量打印出来,以检查它的 Employee 和 FoundedAt 字段是否已正确转换为 string 类型或 int 类型。
阅读全文