go语言学习
文章平均质量分 63
一个纸杯
自律,才能自由
展开
-
go语言nil,new,make介绍
nilnil与其他语言的null不同,nil一般作为指针,切片,map,channel,函数和接口的零值。nil标识符是不能比较的。nil没有默认类型,不能使用" %T "打印其类型。不同类型的nil占用的内存大小是不一样的,而且和编译器和架构有关。var p *intfmt.Printf("sizeof %v:%d\n", p, unsafe.Sizeof(p)) // 8var s []intfmt.Printf("sizeof %v:%d\n", s, unsafe.Sizeof(原创 2022-02-25 16:19:43 · 378 阅读 · 0 评论 -
go语言map操作
map是存储键值对的数据结构,使用哈希表实现,map是无序的。map自动初始化值为nil,可以自动增长。和切片一样,map也是一种引用类型。map是跨线程访问是不安全的,可以使用sync包中的Map来实现线程安全。map的创建方法一:直接定义使用map关键字声明map,后面跟[key类型],value类型var name map[keyType]valueTypevar users = map[int]string{1: "小明", 2: "小张", 3: "小红"}fmt.Prin.原创 2022-02-25 15:59:39 · 1862 阅读 · 1 评论 -
go语言指针、数组和切片
go语言指针被拆分成两个核心概念:指针类型和切片,他们分别对应变量和数组的引用。指针类型:指向变量在底层的内存,但是go语言的指针不允许偏移和运算。切片:是对数组一个连续片段的引用,切片底层数据结构都是数组,切片内部结构包括:地址、大小和容量。切片一般用于快速操作一块数据集合。变量参考前一篇文章:go语言变量与常量指针变量由内存地址,数据类型和值组成,指针即变量内存地址的别名,通过这个别名同样可以访问和修改变量的内存。go语言中指针类型只能操作单个变量(不像c语言中可以通过指针偏移操作一大原创 2022-02-25 12:20:10 · 1185 阅读 · 0 评论 -
go语言string操作
字符串类型string是一个不可变的字符序列,go从底层就采用UTF-8编码。字符串在内存中是以byte数组存储的,如果是非ASCII字符的其他长度字符(如中文),每个rune就占多个byte。字符串操作字符串定义//转义字符\n \r \t \u \U分别表示换行,回车,制表符,Unicode字符var str string = "测试转义字符: \t hello \u0067\U0000006F \n"//使用反引号来定义原生字符串,无需转义原样输出var str1 string =原创 2022-02-20 17:33:17 · 1955 阅读 · 0 评论 -
go语言变量与常量
变量是内存的别称——鲁迅基本类型go语言内置了如下这些基本数据类型- bool //初始值为false- string //初始值为""- int , int8, int16, int32, int64 //初始值为0,其中int长度跟随系统- uint, uint8, uint16, uint32, uint64, uintptr //初始值为0,uintptr初始值为nil(本质也是0吧),uint和uintptr长度跟随系统,- byte //初始值0,uint8的别称- run原创 2022-02-20 00:29:01 · 688 阅读 · 0 评论 -
go开发环境搭建
golang开发环境搭建非常简单,分为如下两步,两个步骤在Windows、MacOS、Linux上都大致相同:1.下载安装包,解压2.配置环境变量下面是详细步骤下载解压下载地址:https://go.dev/dl/有特性版本和稳定版本可以选择,根据自己的喜好和平台下载即可。下载完成后,解压,解压路径没有要求,下面是我自己的解压路径:Windows: d:/goLinux和MacOS: /usr/local/go环境配置环境变量也很简单,配置四个环境变量即可GOROOTgo原创 2022-02-19 20:52:06 · 1586 阅读 · 0 评论