![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang学习笔记
不变不中
多想、多做、多总结,别怕吃亏。
展开
-
010.golang 结构struct
结构structGo 中的struct与C中的struct非常相似,并且Go没有class使用 type <Name> struct{} 定义结构,名称遵循可见性规则支持指向自身的指针类型成员支持匿名结构,可用作成员或定义成员变量匿名结构也可以用于map的值可以使用字面值对结构进行初始化允许直接通过指针来读写结构成员相同类型的成员可进行直接拷贝赋值支持 == 与 ...原创 2018-06-05 16:22:01 · 291 阅读 · 0 评论 -
007.golang 切片slice
切片Slice其本身并不是数组,它指向底层的数组作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型可以直接创建或从底层数组获取生成使用len()获取元素个数,cap()获取容量一般使用make()创建如果多个slice指向相同底层数组,其中一个的值改变会影响全部make([]T, len, cap)其中cap可以省略,则和len的值相同len表示存数的元素个...原创 2018-05-31 20:44:41 · 507 阅读 · 0 评论 -
006.golang 数组 array
数组Array定义数组的格式:var [n],n>=0数组长度也是类型的一部分,因此具有不同长度的数组为不同类型注意区分指向数组的指针和指针数组数组在Go中为值类型数组之间可以使用==或!=进行比较,但不可以使用<或>可以使用new来创建数组,此方法返回一个指向数组的指针Go支持多维数组package mainimport ( "fmt"...原创 2018-05-31 19:52:14 · 841 阅读 · 0 评论 -
005.golang 控制语句
判断语句if条件表达式没有括号支持一个初始化表达式(可以是并行方式)左大括号必须和条件语句或else在同一行支持单行模式初始化语句中的变量为block级别,同时隐藏外部同名变量package mainimport ( "fmt")func main() { a := 10 b := 20 //条件表达式没有括号 //支持一...原创 2018-05-31 12:57:55 · 234 阅读 · 0 评论 -
004.golang 常量与运算符
常量的定义常量的值在编译时就已经确定常量的定义格式与变量基本相同等号右侧必须是常量或者常量表达式常量表达式中的函数必须是内置函数package mainimport "fmt"const a int = 1const b = "B"const ( c = "c"原创 2018-05-31 10:59:31 · 569 阅读 · 0 评论 -
003.golang 类型与变量
Go基本类型布尔型:bool长度:1字节取值范围:true, false注意事项:不可以用数字代表true或false整型:int/uint根据运行平台可能为32或64位8位整型:int8/uint8长度:1字节取值范围:-128~127/0~255字节型:byte(uint8别名)16位整型:int16/uint16 长度:2字节取值范围:-32768~327...原创 2018-05-31 10:18:05 · 436 阅读 · 0 评论 -
002.golang 基础知识
Go内置关键字 . . . . . break default func interface select case defer go map struct chan else goto package switch const fallthrough if range t...原创 2018-05-31 09:54:00 · 294 阅读 · 0 评论 -
01.golang hello world(sublime 安装配置汉化)
Go 语言特色简洁、快速、安全并行、有趣、开源内存管理、数组安全、编译迅速Go 安装Golang中国下载Go环境变量与工作目录根据约定,GOPATH下需要建立3个目录:bin(存放编译后生成的可执行文件)pkg(存放编译后生成的包文件)src(存放项目源码)Go常用命令简介go get:获取远程包(需 提前安装 git或hg)go r...原创 2018-05-30 15:06:02 · 729 阅读 · 0 评论 -
013.反射reflection
反射reflection反射可大大提高程序的灵活性,使得 interface{} 有更大的发挥余地反射使用 TypeOf 和 ValueOf 函数从接口中获取目标对象信息反射会将匿名字段作为独立字段(匿名字段本质)想要利用反射修改对象状态,前提是 interface.data 是 settable, 即 pointer-interface通过反射可以“动态”调用方法p...原创 2018-06-06 10:20:08 · 247 阅读 · 0 评论 -
012.golang 接口interface
接口interface接口是一个或多个方法签名的集合只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这称为 Structural Typing接口只有方法声明,没有实现,没有数据字段接口可以匿名嵌入其它接口,或嵌入到结构中将对象赋值给接口时,会发生拷贝,而接口内部存储的是指向这个复制品的指针,既无法修改复制品的状态,也无法获取指针只有当接口存储...原创 2018-06-05 17:43:19 · 304 阅读 · 1 评论 -
009. golang 函数 function
函数functionGo 函数 不支持 嵌套、重载和默认参数但支持以下特性:无需声明原型、不定长度变参、多返回值、命名返回值参数匿名函数、闭包定义函数使用关键字 func,且左大括号不能另起一行函数也可以作为一种类型使用package mainimport ( "fmt")func main() { fmt.Println(A(1, "a...原创 2018-06-05 15:02:16 · 352 阅读 · 0 评论 -
011.golang 方法 method
方法methodGo 中虽没有class,但依旧有method通过显示说明receiver来实现与某个类型的组合只能为同一个包中的类型定义方法Receiver 可以是类型的值或者指针不存在方法重载可以使用值或指针来调用方法,编译器会自动完成转换从某种意义上来说,方法是函数的语法糖,因为receiver其实就是方法所接收的第1个参数(Method Value vs. Method...原创 2018-06-05 16:51:04 · 364 阅读 · 0 评论 -
008.golang map
map类似其它语言中的哈希表或者字典,以key-value形式存储数据Key必须是支持==或!=比较运算的类型,不可以是函数、map或sliceMap查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍Map使用make()创建,支持 := 这种简写方式make([keyType]valueType, cap),cap表示容量,可省略 超出容量时会自动扩容,但尽量提供一个合理...原创 2018-05-31 21:09:43 · 306 阅读 · 0 评论