首页 > 其他分享 >关于零值和nil

关于零值和nil

时间:2024-09-19 23:35:00浏览次数:5  
标签:nil fmt 初始值 类型 关于 Println 零值

1. 零值

零值是指当你声明变量(分配内存)并未显式初始化时,始终为你的变量自动设置一个默认初始值的策略。

对于值类型:布尔类型为 false, 数值类型为 0,字符串为 "",数组和结构会递归初始化其元素或字段,即其初始值取决于元素或字段。
对于引用类型: 均为 nil,包括指针 pointer,函数 function,接口 interface,切片 slice,管道 channel,映射 map。
因为切片是引用类型的,所以其零值也是 nil:例如下列代码

package main

import "fmt"
import "strings"

func main(){
    var s []string

    fmt.Println(s, len(s), cap(s)) // [] 0 0
    fmt.Println(s == nil) // true

    s = append(s, "Hello")
    s = append(s, "World")
    fmt.Println(strings.Join(s, ", ")) // Hello, World
}


具体内容参考:
https://zhuanlan.zhihu.com/p/295048056

标签:nil,fmt,初始值,类型,关于,Println,零值
From: https://www.cnblogs.com/yyyylllll/p/18421584

相关文章

  • 关于我学习java的小结07
    一、知识点本节课的知识点为集合、泛型、Map。二、目标了解集合关系图。掌握List和Set的区别。掌握ArrayList和LinkedList的区别。熟练使用集合相关API。三、内容分析重点集合、泛型、Map。难点集合相关API的使用。各个集合底层原理的区别。四、内容1......
  • 关于嵌入式硬件需要了解的基础知识
    成长路上不孤单......
  • 关于springcloud中openfeign中服务调用日志输出
    在使用openfeign进行服务调用的时候,我们可以通过一些配置,获取到服务调用的日志输出,可以从消费端看到日志有两种方法:一、使用配置类;二、使用配置文件配置日志输出级别有四种:NONE:不输出(默认)BASIC:只输出请求方式、url、请求成功与否HEADERS:输出请求头的部分信息等FULL:BASIC+HEA......
  • 关于HarmonyOS的学习
    day34一、设计模式   +设计模式是一些对解决问题的总结和经验,设计模式是解决某个问题的最佳的方案,无数人优秀人的程序员的实验和错误总结   +共23种1.工厂模式     =>对于批量创建对象的一种解决方案     =>函数可以传递参数......
  • Qwen2模型量化时关于bitsandbytes安装的问题
    Qwen2模型量化时关于bitsandbytes安装的问题问题描述:fromtransformersimportAutoTokenizer,AutoModelForCausalLM,GenerationConfig,BitsAndBytesConfigCUDA_DEVICE="cuda:0"model_name_or_path='/qwen2-1.5b-instruct'Tokenizer=AutoTokenizer.from_pr......
  • 关于链表逆序的(递归方法)
    LinkNode*turnoff(LinkNode*head){head->next->next=head;head->next=NULL;returnhead;//这里我们需要返回新的头(head);}以上我们创建了一个简单但函数还不是递归的。上述我们不可以从头开始,要从尾巴开始;这个时候需要递归一下到最后一个节点。即:LinkNode*turnoff......
  • tp3.2.3 关于chdir导致namespace Event路径冲突的问题
    echo$_SERVER['DOCUMENT_ROOT'].'<br>';echogetcwd().'<br>';echodirname(__FILE__);chdir(dirname(__FILE__));require_once("../thirdPay/OrderCreate.php");require_once("../thirdPay/OrderQuery.php&qu......
  • 关于Centos9下使用dnf安装mysql报错的解决
    报错内容如下:```MySQL8.0CommunityServer3.0MB/s|3.1kB00:00file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022的GPG公钥(0x3A79BD29)已安装仓库"MySQL8.0CommunityServer"的GPG公钥已安装,但是不适用于此软件包。请检查此仓库的公钥URL是否配置正确。.失......
  • 关于win10和win11系统卡死
    在使用过程中,系统卡死,鼠标能用,无法使用win+shift+s,win+r等按键,win10仅仅能使用ctrl+alt+del键,win11完全无法使用,仅仅可移动鼠标。该现象是win系统的更新bug,需要关掉任务栏资讯设置。如果我们打开任务管理器,查看进程管理,会发现任务栏占用高达100多M,这是不正常的。并且重启无效。......
  • C++入门基础知识75(高级)——【关于C++ Web 编程】
    成长路上不孤单......