英文:
Build array with different types
问题
可以构建包含不同类型的数组。例如:
[1, 2, "apple", true]
英文:
Can I build array what includes different types? For example:
[1, 2, "apple", true]
答案1
得分: 24
你可以通过创建一个interface{}
类型的切片来实现这个。例如:
func main() {
arr := []interface{}{1, 2, "apple", true}
fmt.Println(arr)
// 但是,现在你需要使用类型断言来访问元素
i := arr[0].(int)
fmt.Printf("i: %d, i type: %T\n", i, i)
s := arr[2].(string)
fmt.Printf("b: %s, i type: %T\n", s, s)
}
在这里可以了解更多信息。
英文:
You can do this by making a slice of interface{}
type. For example:
func main() {
arr := []interface{}{1, 2, "apple", true}
fmt.Println(arr)
// however, now you need to use type assertion access elements
i := arr[0].(int)
fmt.Printf("i: %d, i type: %T\n", i, i)
s := arr[2].(string)
fmt.Printf("b: %s, i type: %T\n", s, s)
}
Read more about this here.
答案2
得分: 3
根据情况,你可以使用struct
代替:
package main
import "fmt"
type array struct {
one, two int
fruit string
truth bool
}
func main() {
arr := array{1, 2, "apple", true}
fmt.Println(arr)
}
https://golang.org/ref/spec#Struct_types
英文:
Depending on the situation, you might be able to use a struct
instead:
package main
import "fmt"
type array struct {
one, two int
fruit string
truth bool
}
func main() {
arr := array{1, 2, "apple", true}
fmt.Println(arr)
}
<https://golang.org/ref/spec#Struct_types>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论