go语言开发交流qq群 857263711 保持进步 希望每个人都能找到自己喜欢的方式生活、工作。

2019年7月15日

go 结构的方法总结

摘要: 方法可以与命名类型或命名类型的指针关联。 刚刚看到的两个 Abs 方法。一个是在 *Vertex 指针类型上,而另一个在 MyFloat 值类型上。 有两个原因需要使用指针接收者。首先避免在每个方法调用中拷贝值(如果值类型是大的结构体的话会更有效率)。其次,方法可以修改接收者指向的值。 尝试修改 A 阅读全文

posted @ 2019-07-15 23:01 送欢 阅读(127) 评论(0) 推荐(0) 编辑

go 结构的方法2

摘要: 你可以对包中的 任意 类型定义任意方法,而不仅仅是针对结构体。 但是,不能对来自其他包的类型或基础类型定义方法。 package main import ( "fmt" "math" ) type MyFloat float64 //定义在了结构体上 func (f MyFloat) Abs() f 阅读全文

posted @ 2019-07-15 23:00 送欢 阅读(76) 评论(0) 推荐(0) 编辑

go struct 的方法1

摘要: 方法 Go 没有类。然而,仍然可以在结构体类型上定义方法。 方法接收者 出现在 func 关键字和方法名之间的参数中。 package main import ( "fmt" "math" ) //定义结构体 type Vertex struct { X, Y float64 } //定义结构的方法 阅读全文

posted @ 2019-07-15 22:57 送欢 阅读(185) 评论(0) 推荐(0) 编辑

go 函数闭包

摘要: Go 函数可以是闭包的。闭包是一个函数值,它来自函数体的外部的变量引用。 函数可以对这个引用值进行访问和赋值;换句话说这个函数被“绑定”在这个变量上。 例如,函数 adder 返回一个闭包。每个闭包都被绑定到其各自的 sum 变量上。 阅读全文

posted @ 2019-07-15 22:53 送欢 阅读(140) 评论(0) 推荐(0) 编辑

go map的定义和使用 键值对存储

摘要: 定义map var m map[string]int //定义map 初始化map m = make(map[string]int) //初始化map 修改map中ok 的值 m["ok"] =123 删除元素 delete(m, "Answer") 删除key=Answer的元素 定义map va 阅读全文

posted @ 2019-07-15 22:30 送欢 阅读(7041) 评论(0) 推荐(0) 编辑

go 通过赋值给 _ 来忽略序号和值

摘要: go 语言中 只要想忽略的值都需要用 下划线 _ 来代替 package main import "fmt" func main() { pow := make([]int, 10) for i := range pow { pow[i] = 1 << uint(i) } //忽略index的值 f 阅读全文

posted @ 2019-07-15 22:19 送欢 阅读(127) 评论(0) 推荐(0) 编辑

go for range 可以方便的对slice 切片或者 map 进行迭代循环

摘要: package main import ( "fmt" "math/rand" "time" ) func main() { //遍历切片 data := make([]int, 10) for index, val := range data { fmt.Println(index, val) } 阅读全文

posted @ 2019-07-15 22:14 送欢 阅读(394) 评论(0) 推荐(0) 编辑

go 构造切片slice

摘要: 定义切片 make([]int, 5) 长度和容量均为5 make([]int, 0, 5) 长度为0 容量为0 切片 slice2[3:5] 对slice2进行切片返回 第3 4 两个元素 不包含index=5这个元素 package main import "fmt" func main() { 阅读全文

posted @ 2019-07-15 22:00 送欢 阅读(426) 评论(0) 推荐(0) 编辑

go slice切片注意跟数组的区别

摘要: 一个 slice 会指向一个序列的值,并且包含了长度信息。 []T 是一个元素类型为 T 的 slice。 [2]string 这样定义久是字符数组 []string 这样定义就是切片 表面上看切片就是不指定长度的数组 package main import "fmt" func main() { 阅读全文

posted @ 2019-07-15 20:32 送欢 阅读(179) 评论(0) 推荐(0) 编辑

go 数组的定义和赋值

摘要: package main import "fmt" func main() { //字符数组定义 var str [2]string str[0] = "world" str[1] = "hello" fmt.Println(str) //赋值数组的第二种方法 str1 := [2]string{" 阅读全文

posted @ 2019-07-15 19:59 送欢 阅读(16962) 评论(0) 推荐(0) 编辑

go 结构体2 文法

摘要: 结构体文法表示通过结构体字段的值作为列表来新分配一个结构体。 使用 Name: 语法可以仅列出部分字段。(字段名的顺序无关。) 特殊的前缀 & 返回一个指向结构体的指针。 //分配的v1结构体 第一个字段值为 1 第二个字段值为 2 v1 = Vertex{1, 2} // 类型为 Vertex / 阅读全文

posted @ 2019-07-15 18:44 送欢 阅读(152) 评论(0) 推荐(0) 编辑

go 结构体定义和结构体指针

摘要: 结构体一个结构体(`struct`)就是一个字段的集合。 将来要使用它向java 、C# 中的class 有相同的地位 struct 可以用来值传递 同时可以通过引用传递参数(地址) java C# 对于class只能引用传递 结构体定义 type YourName struct 例如: type 阅读全文

posted @ 2019-07-15 18:32 送欢 阅读(1783) 评论(0) 推荐(0) 编辑

go 指针 通过指针修改int类型的值

摘要: 指针的定义 :var p *int 取指针的值 :*p package main import ( "fmt" ) func main() { i := 0 fmt.Println("i的地址:", &i) p := &i fmt.Printf("i对应的指针类型 %T,指向i的指针地址:%x", 阅读全文

posted @ 2019-07-15 16:29 送欢 阅读(1059) 评论(0) 推荐(0) 编辑

go defer 语句会延迟函数的执行直到上层函数返回。

摘要: defer code... 可以理解为 执行完当前defer所在的方法代码后执行defer 中的代码 常用在释放资源 比如 关闭文件 为防止忘记编写关闭代码 可以先写好 defer 各种释放资源的代码 然后编写正常的业务代码 defer代码 是入栈操作,执行按照出栈顺序执行 package main 阅读全文

posted @ 2019-07-15 16:13 送欢 阅读(191) 评论(0) 推荐(0) 编辑

go switch 和java C#有不同

摘要: 1 switch 后的语句可以有简单的赋值语句 2 case :后的语句结束后不需要break;默认自动结束 除非以 fallthrough 语句结束,否则分支会自动终止 没有条件的 switch 有些情况需要使用fallthrough ,网上找的例子 相当于每个case 后面的代码要自己根据情况写 阅读全文

posted @ 2019-07-15 15:25 送欢 阅读(315) 评论(0) 推荐(0) 编辑

go if 便捷语句

摘要: 之前使用java C#没这么用过. 绝对新技能 if v := math.Pow(x, n); v < lim { 跟 for 一样,`if` 语句可以在条件之前执行一个简单的语句。 由这个语句定义的变量的作用域仅在 if 范围之内。 package main import ( "fmt" "mat 阅读全文

posted @ 2019-07-15 15:03 送欢 阅读(209) 评论(0) 推荐(0) 编辑

go if 判断 完成随机分数的评级

摘要: 1 go中 所有的大括号要跟在 当前语句的后面不能换行 例如: if a>0 { func getUser(){ for { 2关于随机分数的生成 种子的设置放到循环中会是重复的数字,这是可以time.Sleep(n) 等待一下就可以是不重复的数值了 go语言开发交流qq群 857263711 保持 阅读全文

posted @ 2019-07-15 14:56 送欢 阅读(194) 评论(0) 推荐(0) 编辑

go for循环

摘要: 1全形式 for for 不能像java C#那样跟小括号 for i:=0;i<10;i++ { 大括号必须放再这里 2省略前置后置语句 for sum < 1000 { 3全省略for 相当于死循环 下面代码一直循环到sum值超出int最大值 异常中断 go语言开发交流qq群 857263711 阅读全文

posted @ 2019-07-15 14:27 送欢 阅读(325) 评论(0) 推荐(0) 编辑

go 常量2

摘要: 数值常量 数值常量是高精度的 _值_。 一个未指定类型的常量由上下文来决定其类型。 也尝试一下输出 needInt(Big) 吧。 package main import "fmt" const ( Big = 1 << 100 Small = Big >> 99 ) func needInt(x 阅读全文

posted @ 2019-07-15 11:21 送欢 阅读(185) 评论(0) 推荐(0) 编辑

go 常量定义和使用

摘要: 常量的定义与变量类似,只不过使用 const 关键字。 常量可以是字符、字符串、布尔或数字类型的值。 常量不能使用 := 语法定义。 常量必须定义时赋值,不能多次赋值 package main import "fmt" const PI = 3.1415926 const ErrorCode = " 阅读全文

posted @ 2019-07-15 11:13 送欢 阅读(4017) 评论(0) 推荐(0) 编辑

导航