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

我不知道我在做什么,我决定尝试在 go 中使用列表(文档)。这是我能想到的最多的

  1. 为什么 %v 打印{0xf840024660 <nil> 0xf840023660 4}

  2. 为什么我在将整数与字符串混合时没有收到错误消息?

  3. 如何强制类型?(例如仅整数,仅字符串等)

代码:

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())

}


繁花不似锦
浏览 196回答 2
2回答

慕妹3146593

首先,你可能不想要container/list. 您可能正在寻找切片和append(). 例如:x := []int { 1, 2, 3 }x = append(x, 4)x = append(x, 5, 6)container/list允许你混合类型的原因是它interface{}用来保存值,任何类型都满足空接口。

慕哥9229398

要回答你的第一个问题的调用Front()和Back(),那是因为你打印出来的Element结构不包括可打印的值。如果你想打印Element.Value你必须做的(*ls2.Front()).Value。类似的原因也适用于fmt.Println(ls)打印怪异的原因。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go