go语言学习
go语言学习
混子本混
这个作者很懒,什么都没留下…
展开
-
go 语言学习笔记(17)—— json解析
文章目录go 语言学习笔记(17)—— json解析json解析到结构体json解析到map go 语言学习笔记(17)—— json解析 json解析到结构体 package main import ( "encoding/json" "fmt" ) type IT struct { Company string Subjects []string Isok bool Price float64 } func main() { jsonBuf := ` { "Co原创 2022-02-11 17:48:49 · 85 阅读 · 0 评论 -
go 语言学习笔记(16)—— JSON
文章目录go 语言学习笔记(16)—— JSONjson介绍结构体生成json二次编码 输出首字母小写不输出非字符串类型输出字符串map生成json go 语言学习笔记(16)—— JSON json介绍 导包: encoding/json 百度百科:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得原创 2022-02-11 17:24:50 · 49 阅读 · 0 评论 -
go 语言学习笔记(15)——字符串常用函数
文章目录go 语言学习笔记(15)——字符串常用函数字字符串操作ContainsJoinIndexRepeatReplaceSplitTrimFields字符串转换AppenFormat go 语言学习笔记(15)——字符串常用函数 字字符串操作 Contains func Contains(s , substr string) bool 功能:字符串s中是否包含subsrt 返回bool类型 package main import ( "fmt" "strings" ) func main() {原创 2022-02-06 15:42:29 · 445 阅读 · 0 评论 -
go 语言学习笔记(14)——异常处理
文章目录go 语言学习笔记(14)——异常处理error(不会导致程序崩溃)创建一个错误(error)error接口应用panic(错误导致程序崩溃)显示调用panic正常程序调用panic函数数组越界recover(错误导致程序崩溃,recover恢复程序) go 语言学习笔记(14)——异常处理 error(不会导致程序崩溃) 创建一个错误(error) package main import ( "errors"//导入包 "fmt" ) func main() { //创建一个错误 er原创 2022-02-06 14:44:08 · 318 阅读 · 0 评论 -
go 语言学习笔记(13)——类型断言
go 语言学习笔记(13)——类型断言 if实现 package main import "fmt" type Student struct { name string id int } func main() { all := make([]interface{}, 3) //创建一个空接口切片 all[0] = 1 all[1] = "hello word" all[2] = Student{"hxw", 19} //类型断言 for _, data := range all原创 2022-02-06 13:46:05 · 368 阅读 · 0 评论 -
go 语言学习笔记(12)——接口
go 语言学习笔记(12)——接口 接口关心的是行为, 不关心对象是什么类型的 不能实例化 但可以用用户定义类型实现 接口定义 type palyer interface { SayHi() } 接口命名习惯以er结尾 只用方法声明, 没有实现, 没有数据字段 接口可以匿名函数嵌入其他接口, 或者嵌入到结构中 实例化 只要实现了此接口方法的类型, 那么类型的变量就可以给接口类型变量赋值 eg package main import "fmt" type Student struct { name原创 2022-02-05 17:47:19 · 376 阅读 · 0 评论 -
go 语言学习笔记⑪——方法
文章目录go 语言学习笔记⑪——方法值传递和引用传递接收者为普通变量 拷贝数值 go 语言学习笔记⑪——方法 带接收者的函数 是一个和特殊类型相关联的函数 func (receiver ReceiverType)funcName(parameters)result receiver 不能是个指针或者是接口 只要接收者是不同类型,这个方法就不算同名, 是不同的方法 不能重载 package main import ( "fmt" ) type myint int func (a myint) add(原创 2022-01-20 16:58:15 · 164 阅读 · 0 评论 -
go 语言学习笔记⑩——面向对象和面向过程的区别
文章目录go 语言学习笔记⑩——面向对象和面向过程的区别面向过程面向对象 go 语言学习笔记⑩——面向对象和面向过程的区别 对于a + b 面向过程 package main import ( "fmt" ) func add(a, b int) (c int) { c = a + b return } func main() { a, b := 1, 2 fmt.Println(add(a, b)) } 面向对象 package main import ( "fmt" ) ty原创 2022-01-20 16:37:51 · 389 阅读 · 0 评论 -
go 语言学习笔记⑨——继承
文章目录go 语言学习笔记⑨——继承顺序赋值自动推导指定成员初始化继承中有相同成员基础类型的匿名字段结构体指针类型的匿名字段 go 语言学习笔记⑨——继承 代码复用,通过匿名字段实现 eg type Person struct { name string sex string age int } type Student struct { Person//只有类型, 没有名字,匿名字段 (继承Person成员) idx int add string } Student 就继承了Perso原创 2022-01-20 16:27:19 · 246 阅读 · 0 评论 -
go 语言学习笔记⑧----结构体
文章目录go 语言学习笔记⑧----结构体初始化顺序初始化指定初始化结构体指针单独操作成员通过new申请一个结构体做函数参数 go 语言学习笔记⑧----结构体 一种聚合的数据类型, 由一系列具有相同的数据类型或者不同的数据类型的数据结构构成的数据集合, 每个数据被称为结构体成员(自定义数据类型) 初始化 type 结构体名称 struct{内容} type node struct { l, r, sum int } 顺序初始化 var 变量名 结构体名 = 结构体名{初始化变量} func main(原创 2022-01-13 00:12:09 · 173 阅读 · 0 评论 -
go 语言学习笔记⑦----映射(map)
文章目录go 语言学习笔记⑦----映射(map)使用make赋值遍历是否存在删除做函数参数 go 语言学习笔记⑦----映射(map) 键值对,映射(类c++中的map ) map[keyType]valueType keyType 不可以是切片了, 函数以及包含切片的结构类型 eg mp := map[int]string{} 无序存储 使用 只有len没有cap package main import ( "fmt" ) func main() { mp := map[int]string{}原创 2022-01-12 00:29:42 · 189 阅读 · 0 评论 -
go 语言学习笔记⑥----切片
文章目录go 语言学习笔记⑥----切片声明函数切片与数组区别make函数截取append函数copy做函数参数 go 语言学习笔记⑥----切片 通过内部指针和相关属性,引用数组片段,以实现变长方案。 go中数据结构, 我们可以增加更多的值 声明 arr := [...]int{1, 2, 3, 4, 5, 6} slice := arr[0:3:5] **数组[起始位置:终止位置:max] **(左闭右开) 长度= 终止 - 起始 容量= max - 起始 函数 len()长度 cap()容量 arr原创 2022-01-11 22:08:35 · 167 阅读 · 0 评论 -
go 语言学习笔记⑤----随机数
文章目录go 语言学习笔记⑤----随机数 go 语言学习笔记⑤----随机数 package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano())//随机种子 for i := 0; i < 5; i++ { fmt.Println(rand.Intn(10))//Intn 0 到 n-1的随机数 } } ...原创 2022-01-07 23:28:16 · 153 阅读 · 0 评论 -
go 语言学习笔记④----数组
文章目录go 语言学习笔记④----数组定义初始化二维数组定义初始化遍历比较数组作为参数传给函数 go 语言学习笔记④----数组 定义 var arr [3(数组大小)]int 初始化 定义时赋值 1.全部赋值 var a [5]int = [5]int{1, 2, 3, 4, 5} b := [5]int{6, 7, 8, 9, 10} 2.部分赋值 未赋值的部分值为0 a := [5]int{1, 2, 3} b := [5]int{2: 10, 3: 20} 二维数组 定义 var arr [3原创 2022-01-07 23:23:11 · 482 阅读 · 0 评论 -
go 语言学习笔记③----指针
文章目录go 语言学习笔记③----指针变量指针new函数传递值传递引用传递 go 语言学习笔记③----指针 默认为uil(c语言中的NULL) 变量 1.内存(内容) 2.地址 a 内容 &a a的地址 类c语言 指针 声明var p *int 一个int类型的指针 *指针,指针所指向的内存地址的内容 eg: package main import "fmt" func main() { var p *int a := 10 p = &a *p = 6 fmt.Prin原创 2022-01-07 23:04:27 · 851 阅读 · 0 评论 -
go 语言学习笔记①
文章目录go 语言学习笔记①一个小程序使用其他包中函数数据类型字符串符文(rune)布尔值数字查看变量类型变量声明零值短声明变量并赋值命名规则类型转换交换两个值常量和变量iota输出选择if…… else if ……elseswitch循环forrange go 语言学习笔记① 线上编译器 https://play.golang.org 一个小程序 package main//(包名) import "fmt"//(引入其他包) fmt输出 func main() {//main函数首先执行 fmt.原创 2021-12-22 20:59:16 · 539 阅读 · 0 评论 -
go 语言学习笔记②
文章目录go 语言学习笔记②函数格式无参 无返回值有参有返回值不定参数列表不定参数传递给另一个函数全部传递传递一部分返回值递归函数函数类型回调函数匿名函数闭包defer局部变量全局变量 go 语言学习笔记② 函数 格式 func 函数名(参数列表)(返回值类型) { reuturn 多个返回值 } 无参 无返回值 package main import "fmt" func pa() { fmt.Print("hello word") } func main() { pa() } 有参有返回值原创 2021-12-28 18:41:14 · 151 阅读 · 0 评论