当前位置:   article > 正文

【golang】slice赋值null slice不使用零值 | go slice append 头插 尾插_slice null

slice null

一、slice 传 null

1、如何禁止零值

众所周知go如果初始化都会自带零值效果
比如一个切片我们在传送过程中,如果被占位且不想传值为零值
我们就需要使用*

1.1、定义一个带零值的slice

定义如下:

slice = make([]float64, 5)
  • 1

这样会输出:

[0,0,0,0,0]

1.2、定义一个不带零值的slice

定义如下:

slice = make([]*float64, 5)
  • 1

这样会输出:

[ null, null, null, null, null]

一、golang切片slice

出现头插和尾插的情况是因为我们定义带长度的一个切片
如: slice := make([]*float64, 64)

1、尾插

package main

import "fmt"
func main() {
    // 创建一个长度为 64 的 float64 切片
    slice := make([]*float64, 64)

    // 要插入的元素
    newElement := 42.0

    // 在切片开头插入元素
    slice = append(slice, newElement)

    // 打印切片
    fmt.Println(slice)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

输出如下(示意,非正确输出):

[ …null,null,null,null,null,null,null,42.0]

2、头插

尾插需要和我们正常的append有一些区别
slice = append([]float64{newElement}, slice...)

package main

import "fmt"
func main() {
    // 创建一个长度为 64 的 float64 切片
    slice := make([]*float64, 64)

    // 要插入的元素
    newElement := 42.0

    // 在切片开头插入元素
    slice = append([]float64{newElement}, slice...)

    // 打印切片
    fmt.Println(slice)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

输出如下(示意,非正确输出):

[
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
]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/175534
推荐阅读
相关标签
  

闽ICP备14008679号