Go语言
比较浅显的课程笔记,跟随老师上课的思路,主要用于自己复习。
W_liixue
这个作者很懒,什么都没留下…
展开
-
GO:并发实例
func task1() { for i := 0; i < 2; i++ { fmt.Println("火车驶向云外") }}func task2() { for i := 0; i < 2; i++ { fmt.Println("梦安魂于九霄") }}func main() { task1() task2()}火车驶向云外火车驶向云外梦安魂于九霄梦安魂于九霄func main() { go task1() go task2()//main(原创 2020-07-24 19:16:54 · 415 阅读 · 0 评论 -
Go:对象 接口 继承
对象type Point struct { x, y float64}func (p Point) Distance() float64 { //给点类增加一个方法,返回距离 return math.Sqrt(p.x*p.x + p.y*p.y)}func main() { //var p *Point = new(Point) //new返回的是个地址 所以是*point // p.x = 3 // p.y = 4 p1 := Point{3, 4} fmt.Println(p原创 2020-07-24 18:34:09 · 229 阅读 · 0 评论 -
Go语法要点:map(字典)
func main() { gm := make(map[string]string) //下标类型和内容类型 gm["bed"] = "床" gm["desk"] = "桌子" gm["book"] = "书" gm["computer"] = "电脑" // fmt.Println(gm) // for c, e := range gm { // fmt.Println(c, ":", e) // } // for c, _ := range gm { // fmt.Pr原创 2020-07-24 17:42:32 · 197 阅读 · 0 评论 -
Go数组: 数组做函数参数 和 指向数组的指针做参数
数组和函数即 数组作为函数的参数func test(x [2]int) { fmt.Printf("x:%p,%v\n", &x, x)}func main() { a := [2]int{1, 2} var b [2]int b = a// 把a完全赋给b,实现数组的copy fmt.Printf("a:%p,%v\n", &a, a) fmt.Printf("b:%p,%v\n", &b, b) test(a)}a:0xc00000c1e0,[1 2原创 2020-07-24 16:34:32 · 419 阅读 · 0 评论 -
Go语言:切片,切片与数组
切片相当于是C语言中的动态数组,但在Go的语法下变得简洁清晰。而切片这个定义也可以理解为切出一片空间使用func main() { x := make([]int, 0, 5)//创建一个长度为0,容量为5的切片 //[]int 是动态数组类型,也可以开辟其他集合类型的空间,如通道,map for i := 0; i < 8; i++ { x = append(x, i)//在切片的最后位置追加数据,当超出容量的时候,容量会自动翻倍。如此时追加的数据超过5个变为8个,容量翻倍为10原创 2020-07-06 12:20:54 · 238 阅读 · 0 评论 -
Go 数组: 定义及初始化 结构体数组 多维数组 数组和指针
数组的定义及初始化func main() { var a [4]int //按数组长度自动初始化为0 var aa [4]int = [4]int{1, 2, 3, 4} var aaa = [4]int{1, 2, 3, 4} //定义并初始化 b := [4]int{2, 5} //按数组长度,没有初始化的自动初始化为0 c := [4]int{5, 3: 10} e := [...]int{10, 2: 100} d := [...]int{1, 2, 3} fmt.Println原创 2020-07-03 14:14:47 · 5182 阅读 · 0 评论 -
Go 函数: 闭包,回调, 延迟执行, 异常机制恢复
闭包的本质其实是扩展用匿名函数作为函数的返回值,可以扩展该函数的定义范围(该函数和匿名函数所组成的整体称为闭包)func makeAdder(x int) func(int) int { return func(y int) int { return x + y }}func main() { fmt.Println(makeAdder(5)(1))//定义makeAdder的参数,再定义匿名函数的参数}回调:函数可以作为其他函数的参数进行传递,然后在其他函数内调用func add原创 2020-07-03 11:07:20 · 1121 阅读 · 0 评论 -
Go 函数:匿名函数
1.函数可以当作一种数据类型来使用2.匿名函数必须定义在一个函数内部,即必须有一个外层函数三种表现形式func main() { f1 := func(a, b int) int {return a + b} result := f1(1, 2) fmt.Println(result)}}func main() { fmt.Println(func(a,b int)int{return a+b}(1,2)}}func main() { r := func(a, b int)原创 2020-07-03 10:26:10 · 230 阅读 · 0 评论 -
Go语言中 Print Printf和Println 的区别
Print 与 Println 打印方式类似,只在格式上有些不同;``Printf与其他两个不同,是格式化输出1.Println 打印的每一项之间都会有空行,Print 没有fmt.Println("how","are","you")//输出 :how are youfmt.Print("how","are","you")//输出 :howareyou2.Println 会自动换行,Print 不会fmt.Println("hello")fmt.Println("world") //输出原创 2020-07-06 12:24:26 · 1639 阅读 · 0 评论