【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

相关推荐
hoiii1871 天前
CSTR反应器模型的Simulink-PID仿真(MATLAB实现)
开发语言·matlab
炘爚1 天前
C++ 右值引用与程序优化
开发语言·c++
码农BookSea1 天前
ReAct:让大模型学会边想边做
后端·ai编程
si莉亚1 天前
ROS2安装EVO工具包
linux·开发语言·c++·开源
清心歌1 天前
CopyOnWriteArrayList 实现原理
java·开发语言
码农BookSea1 天前
10分钟掌握 JSON-RPC 协议,面试加分、设计不踩坑
后端
良木生香1 天前
【C++初阶】C++入门相关知识(2):输入输出 & 缺省参数 & 函数重载
开发语言·c++
忘梓.1 天前
墨色规则与血色节点:C++红黑树设计与实现探秘
java·开发语言·c++
hhh3u3u3u1 天前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
凤年徐1 天前
C++手撕红黑树:从0到200行,拿下STL map底层核心
c++·后端·算法