随笔分类 - go语言
发表于 2021-12-30 16:30阅读次数:40评论次数:0
摘要:值类型 int系列、float系列、bool、string、数组、结构体 值类型通常在栈中分配存储空间 值类型作为函数参数传递, 是拷贝传递 在函数体内修改值类型参数, 不会影响到函数外的值 引用类型 指针、slice、map、channel 引用类型通常在堆中分配存储空间 引用类型作为函数参数传递
阅读全文 »
发表于 2021-12-30 11:21阅读次数:251评论次数:0
摘要:Go语言中无论是全局变量还是局部变量,只要定义了一个变量都有默认的0值 int/int8/int16/int32/int64/uint/uint8/uint16/uint32/uint64/byte/rune/uintptr的默认值是0 float32/float64的默认值是0.0 bool的默认
阅读全文 »
发表于 2021-12-27 15:13阅读次数:169评论次数:0
摘要:# 指针类型 每个变量在内存中都有对应存储位置(内存地址),可以通过&运算符获取。指针是用来存储变量地址的变量 1)声明 指针声明需要指定存储地址中对应数据的类型,并使用*作为类型前缀。指针变量声明后会被初始化为nil,表示空指针 var pointer01 *int var pointer02 *
阅读全文 »
发表于 2021-12-15 17:39阅读次数:78评论次数:0
摘要:var ( a []int // nil切片, 和 nil 相等, 一般用来表示一个不存在的切片 b = []int{} // 空切片, 和 nil 不相等, 一般用来表示一个空的集合 c = []int{1, 2, 3} // 有3个元素的切片, len和cap都为3 d = c[:2] // 有
阅读全文 »
发表于 2021-10-29 15:21阅读次数:65评论次数:0
摘要:// 多态 // 示例 package main import ( "fmt" ) type notifier interface { notify() } type user struct{ name string email string } func (u *user) notify(){ f
阅读全文 »
发表于 2021-10-29 15:11阅读次数:54评论次数:0
摘要://从接收者类型的角度来看方法集 Methods Receivers Values (t T) T and *T (t *T) *T 如果使用指针接收者来实现一个接口,那么只有指向那个类型的指针才能够实现对应的接口。 如果使用值接收者来实现一个接口,那么那个类型的值和指针都能够实现对应的接口 //
阅读全文 »
发表于 2020-12-27 00:49阅读次数:123评论次数:0
摘要:go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。 前提 假设我们有learngo和mypackage两个 包,其中learngo包中会导入mypackage包并使用它的全局变量 mypackage/util
阅读全文 »
发表于 2020-12-25 15:54阅读次数:817评论次数:0
摘要:下载 https://golang.google.cn/dl/ 配置 go env #查看是否安装成功 # 终端输入修改镜像地址 $ go env -w GO111MODULE=on $ go env -w GOPROXY=https://goproxy.cn,direct 安装保存时自动格式化代码
阅读全文 »
发表于 2020-11-08 19:59阅读次数:155评论次数:0
摘要:安装go开发包 Go官方镜像站(推荐):https://golang.google.cn/dl/ mac下载对应的go安装文件 默认安装在/usr/local/go目录下 检测版本 go version 配置goproxy # Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再
阅读全文 »