本文主要是介绍【golang】slice赋值null slice不使用零值 | go slice append 头插 尾插,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、slice 传 null
1、如何禁止零值
众所周知go如果初始化都会自带零值效果
比如一个切片我们在传送过程中,如果被占位且不想传值为零值
我们就需要使用*
1.1、定义一个带零值的slice
定义如下:
slice = make([]float64, 5)
这样会输出:
[0,0,0,0,0]
1.2、定义一个不带零值的slice
定义如下:
slice = make([]*float64, 5)
这样会输出:
[ null, null, null, null, null]
一、golang切片slice
出现头插和尾插的情况是因为我们定义带长度的一个切片
如: slice := make([]*float64, 64)
1、尾插
package mainimport "fmt"
func main() {// 创建一个长度为 64 的 float64 切片slice := make([]*float64, 64)// 要插入的元素newElement := 42.0// 在切片开头插入元素slice = append(slice, newElement)// 打印切片fmt.Println(slice)
}
输出如下(示意,非正确输出
):
[ …null,null,null,null,null,null,null,42.0]
2、头插
尾插需要和我们正常的append有一些区别
slice = append([]float64{newElement}, slice...)
package mainimport "fmt"
func main() {// 创建一个长度为 64 的 float64 切片slice := make([]*float64, 64)// 要插入的元素newElement := 42.0// 在切片开头插入元素slice = append([]float64{newElement}, slice...)// 打印切片fmt.Println(slice)
}
输出如下(示意,非正确输出
):
[
101.777,
101.777,
101.778,
101.778,
101.778,
101.778,
101.778,
101.779,
101.779,
101.779,
101.779,
101.78,
101.78,
101.781,
101.781,
101.782,
80,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
]
这篇关于【golang】slice赋值null slice不使用零值 | go slice append 头插 尾插的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!