Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
go中的字符串和整数列表?_Go - Fatal编程技术网

go中的字符串和整数列表?

go中的字符串和整数列表?,go,Go,我不知道我在做什么,我决定尝试使用围棋。这是我最多能想到的 为什么%v正在打印{0xf840024660 0xf840023660 4} 为什么我在混合整数和字符串时没有收到错误 我如何强制打字?(如仅限整数、仅限字符串等) 代码: package main import "fmt" import "container/list" func main() { ls := list.New() ls.PushBack("a") ls.PushBack(4) ls

我不知道我在做什么,我决定尝试使用围棋。这是我最多能想到的

  • 为什么%v正在打印
    {0xf840024660 0xf840023660 4}
  • 为什么我在混合整数和字符串时没有收到错误
  • 我如何强制打字?(如仅限整数、仅限字符串等)
  • 代码:

    package main
    
    import "fmt"
    import "container/list"
    
    func main() {
        ls := list.New()
        ls.PushBack("a")
        ls.PushBack(4)
        ls.PushBack("5")
        fmt.Println(ls)
        ls2 := list.New()
        ls2.PushBack(4)
        ls2.PushBack(8)
        fmt.Printf("%v\naaa\n", *ls2.Front())
        fmt.Println(*ls2.Back())
    }
    

    首先,您可能不想要
    容器/列表
    。您可能正在寻找类似切片和
    append()
    的内容。例如:

    x := []int { 1, 2, 3 }
    x = append(x, 4)
    x = append(x, 5, 6)
    

    container/list
    允许您混合类型的原因是它使用
    接口{}
    来保存值,并且任何类型都满足空接口。

    要回答调用
    Front()
    Back()
    的第一个问题,这是因为您正在打印不包含可打印值的。如果要打印
    元素.Value
    ,必须执行
    (*ls2.Front()).Value
    。类似的原因也适用于
    fmt.Println(ls)
    打印奇怪的原因