繁体   English   中英

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

[英]List of strings and ints in go?

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

  1. 为什么%v打印{0xf840024660 <nil> 0xf840023660 4}
  2. 为什么我没有收到与字符串混合的错误?
  3. 我该怎么强迫一个类型? (例如只有int,只有字符串等)

码:

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

首先,您可能不需要container/list 你可能正在寻找像切片和append()类的东西。 例如:

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

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

要回答对Front()Back()的调用的第一个问题,这是因为您打印出不包含可打印值的Element结构 如果要打印Element.Value ,则必须执行(*ls2.Front()).Value 类似的原因也适用于为什么fmt.Println(ls)打印很奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM