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

一、slice 传 null

1、如何禁止零值

众所周知go如果初始化都会自带零值效果

比如一个切片我们在传送过程中,如果被占位且不想传值为零值

我们就需要使用*

1.1、定义一个带零值的slice

定义如下:

go 复制代码
slice = make([]float64, 5)

这样会输出:

0,0,0,0,0

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

定义如下:

go 复制代码
slice = make([]*float64, 5)

这样会输出:

null, null, null, null, null

一、golang切片slice

出现头插和尾插的情况是因为我们定义带长度的一个切片

如: slice := make([]*float64, 64)

1、尾插

go 复制代码
package main

import "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...)

go 复制代码
package main

import "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

相关推荐
云浪1 分钟前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
苏三的开发日记11 分钟前
Docker 启动顺序优化(CentOS / Ubuntu)
后端
高频因子挖掘机2 小时前
同一交易日出现重复 K 线:去重前先确认时间、来源和粒度
后端·github·api
feely02083 小时前
《我写了 31 个静态扫描插件,踩了 7 个「假绿」》
后端
橙子家4 小时前
参数校验类异常(Argument Exception)【C# Exception 详解系列一】
后端
掘金挖土4 小时前
前端手摸手跑路之 AI 应用开发(九)
前端·后端
全栈弄潮儿4 小时前
Python实战第8期:函数
后端·python·编程语言
码事漫谈5 小时前
你让 AI “尽力做”,它反而可能做不好
后端
孟健5 小时前
LLM API 安全防线:从 OpenCode 盗刷事件到 LiteLLM 多模型容灾实操
人工智能·后端·架构