![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go语言学习
go语言学习
混子本混
这个作者很懒,什么都没留下…
展开
-
go 语言学习笔记(17)—— json解析
文章目录go 语言学习笔记(17)—— json解析json解析到结构体json解析到mapgo 语言学习笔记(17)—— json解析json解析到结构体package mainimport ( "encoding/json" "fmt")type IT struct { Company string Subjects []string Isok bool Price float64}func main() { jsonBuf := ` { "Co原创 2022-02-11 17:48:49 · 93 阅读 · 0 评论 -
go 语言学习笔记(16)—— JSON
文章目录go 语言学习笔记(16)—— JSONjson介绍结构体生成json二次编码 输出首字母小写不输出非字符串类型输出字符串map生成jsongo 语言学习笔记(16)—— JSONjson介绍导包: encoding/json百度百科:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得原创 2022-02-11 17:24:50 · 55 阅读 · 0 评论 -
go 语言学习笔记(15)——字符串常用函数
文章目录go 语言学习笔记(15)——字符串常用函数字字符串操作ContainsJoinIndexRepeatReplaceSplitTrimFields字符串转换AppenFormatgo 语言学习笔记(15)——字符串常用函数字字符串操作Containsfunc Contains(s , substr string) bool功能:字符串s中是否包含subsrt 返回bool类型package mainimport ( "fmt" "strings")func main() {原创 2022-02-06 15:42:29 · 455 阅读 · 0 评论 -
go 语言学习笔记(14)——异常处理
文章目录go 语言学习笔记(14)——异常处理error(不会导致程序崩溃)创建一个错误(error)error接口应用panic(错误导致程序崩溃)显示调用panic正常程序调用panic函数数组越界recover(错误导致程序崩溃,recover恢复程序)go 语言学习笔记(14)——异常处理error(不会导致程序崩溃)创建一个错误(error)package mainimport ( "errors"//导入包 "fmt")func main() { //创建一个错误 er原创 2022-02-06 14:44:08 · 322 阅读 · 0 评论 -
go 语言学习笔记(13)——类型断言
go 语言学习笔记(13)——类型断言if实现package mainimport "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 · 376 阅读 · 0 评论 -
go 语言学习笔记(12)——接口
go 语言学习笔记(12)——接口接口关心的是行为, 不关心对象是什么类型的不能实例化但可以用用户定义类型实现接口定义type palyer interface { SayHi() }接口命名习惯以er结尾只用方法声明, 没有实现, 没有数据字段接口可以匿名函数嵌入其他接口, 或者嵌入到结构中实例化只要实现了此接口方法的类型, 那么类型的变量就可以给接口类型变量赋值egpackage mainimport "fmt"type Student struct { name原创 2022-02-05 17:47:19 · 381 阅读 · 0 评论 -
go 语言学习笔记⑪——方法
文章目录go 语言学习笔记⑪——方法值传递和引用传递接收者为普通变量 拷贝数值go 语言学习笔记⑪——方法带接收者的函数是一个和特殊类型相关联的函数func (receiver ReceiverType)funcName(parameters)resultreceiver 不能是个指针或者是接口只要接收者是不同类型,这个方法就不算同名, 是不同的方法不能重载package mainimport ( "fmt")type myint intfunc (a myint) add(原创 2022-01-20 16:58:15 · 171 阅读 · 0 评论 -
go 语言学习笔记⑩——面向对象和面向过程的区别
文章目录go 语言学习笔记⑩——面向对象和面向过程的区别面向过程面向对象go 语言学习笔记⑩——面向对象和面向过程的区别对于a + b面向过程package mainimport ( "fmt")func add(a, b int) (c int) { c = a + b return }func main() { a, b := 1, 2 fmt.Println(add(a, b))}面向对象package mainimport ( "fmt")ty原创 2022-01-20 16:37:51 · 410 阅读 · 0 评论 -
go 语言学习笔记⑨——继承
文章目录go 语言学习笔记⑨——继承顺序赋值自动推导指定成员初始化继承中有相同成员基础类型的匿名字段结构体指针类型的匿名字段go 语言学习笔记⑨——继承代码复用,通过匿名字段实现egtype 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 · 254 阅读 · 0 评论 -
go 语言学习笔记⑧----结构体
文章目录go 语言学习笔记⑧----结构体初始化顺序初始化指定初始化结构体指针单独操作成员通过new申请一个结构体做函数参数go 语言学习笔记⑧----结构体一种聚合的数据类型, 由一系列具有相同的数据类型或者不同的数据类型的数据结构构成的数据集合, 每个数据被称为结构体成员(自定义数据类型)初始化type 结构体名称 struct{内容}type node struct { l, r, sum int}顺序初始化var 变量名 结构体名 = 结构体名{初始化变量}func main(原创 2022-01-13 00:12:09 · 184 阅读 · 0 评论 -
go 语言学习笔记⑦----映射(map)
文章目录go 语言学习笔记⑦----映射(map)使用make赋值遍历是否存在删除做函数参数go 语言学习笔记⑦----映射(map)键值对,映射(类c++中的map )map[keyType]valueTypekeyType 不可以是切片了, 函数以及包含切片的结构类型eg mp := map[int]string{}无序存储使用只有len没有cappackage mainimport ( "fmt")func main() { mp := map[int]string{}原创 2022-01-12 00:29:42 · 195 阅读 · 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 · 176 阅读 · 0 评论 -
go 语言学习笔记⑤----随机数
文章目录go 语言学习笔记⑤----随机数go 语言学习笔记⑤----随机数package mainimport ( "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 · 161 阅读 · 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.部分赋值未赋值的部分值为0a := [5]int{1, 2, 3}b := [5]int{2: 10, 3: 20}二维数组定义var arr [3原创 2022-01-07 23:23:11 · 490 阅读 · 0 评论 -
go 语言学习笔记③----指针
文章目录go 语言学习笔记③----指针变量指针new函数传递值传递引用传递go 语言学习笔记③----指针默认为uil(c语言中的NULL)变量1.内存(内容)2.地址a 内容&a a的地址类c语言指针声明var p *int 一个int类型的指针*指针,指针所指向的内存地址的内容eg:package mainimport "fmt"func main() { var p *int a := 10 p = &a *p = 6 fmt.Prin原创 2022-01-07 23:04:27 · 878 阅读 · 0 评论 -
go 语言学习笔记①
文章目录go 语言学习笔记①一个小程序使用其他包中函数数据类型字符串符文(rune)布尔值数字查看变量类型变量声明零值短声明变量并赋值命名规则类型转换交换两个值常量和变量iota输出选择if…… else if ……elseswitch循环forrangego 语言学习笔记①线上编译器 https://play.golang.org一个小程序package main//(包名)import "fmt"//(引入其他包) fmt输出func main() {//main函数首先执行 fmt.原创 2021-12-22 20:59:16 · 549 阅读 · 0 评论 -
go 语言学习笔记②
文章目录go 语言学习笔记②函数格式无参 无返回值有参有返回值不定参数列表不定参数传递给另一个函数全部传递传递一部分返回值递归函数函数类型回调函数匿名函数闭包defer局部变量全局变量go 语言学习笔记②函数格式func 函数名(参数列表)(返回值类型) {reuturn 多个返回值}无参 无返回值package mainimport "fmt"func pa() { fmt.Print("hello word")}func main() { pa()}有参有返回值原创 2021-12-28 18:41:14 · 157 阅读 · 0 评论