随笔分类 -  go

摘要:在Go语言中,有一种特殊的struct{}类型的channel,它不能被写入任何数据,只有通过close()函数进行关闭操作,才能进行输出操作。。struct类型的channel不占用任何内存!!! https://blog.csdn.net/qq_35976351/article/details/ 阅读全文
posted @ 2020-01-20 14:15 kissrule 阅读(491) 评论(0) 推荐(0)
摘要:!无论怎样都不应该在接收端关闭channel,因为在接收端无法判断发送端是否还会向通道中发送元素值 !试图向已经关闭的channel发送数据会导致panic !关闭已经关闭的channel会导致panic https://blog.csdn.net/qq_33296108/article/detai 阅读全文
posted @ 2020-01-20 13:57 kissrule 阅读(302) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/weixin_34050519/article/details/89539759 方法一: go tool compile使用go tool compile -N -l -S once.go生成汇编代码: 方法二: go tool objdump首先先编译 阅读全文
posted @ 2020-01-20 11:00 kissrule 阅读(2533) 评论(0) 推荐(0)
摘要:1 package once 2 import "sync" 3 import "sync/atomic" 4 5 type Once struct { 6 m sync.Mutex 7 done uint32 8 } 9 10 func (o *Once) Do(f func()) { 11 if 阅读全文
posted @ 2020-01-20 10:54 kissrule 阅读(139) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/ypbsyy/article/details/86712489 阅读全文
posted @ 2020-01-17 18:03 kissrule 阅读(174) 评论(0) 推荐(0)
摘要:有一种情况,我们可能需要保存数组,这样我们就需要使用到指针。 以下声明了整型指针数组: var ptr [MAX]*int; ptr 为整型指针数组。因此每个元素都指向了一个值。以下实例的三个整数将存储在指针数组中: 实例 package main import "fmt" const MAX in 阅读全文
posted @ 2020-01-17 17:08 kissrule 阅读(184) 评论(0) 推荐(0)
摘要:Go 语言可以很灵活的创建函数,并作为另外一个函数的实参。以下实例中我们在定义的函数中初始化一个变量,该函数仅仅是为了使用内置函数 math.sqrt(),实例为: 实例 package main import ( "fmt" "math" ) func main(){ /* 声明函数变量 */ g 阅读全文
posted @ 2020-01-17 17:00 kissrule 阅读(200) 评论(0) 推荐(0)
摘要:Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。语法格式如下: func (variable_name variable_data_type) function_name() [retu 阅读全文
posted @ 2020-01-17 16:59 kissrule 阅读(125) 评论(0) 推荐(0)
摘要:Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。 以下实例中,我们创建了函数 getSequence() ,返回另外一个函数。该函数的目的是在闭包中递增 i 变量,代码如下: 实例 package main import 阅读全文
posted @ 2020-01-17 16:57 kissrule 阅读(365) 评论(0) 推荐(0)
摘要:iota iota,特殊常量,可以认为是一个可以被编译器修改的常量。 iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。 iota 可以被用作枚举值: co 阅读全文
posted @ 2020-01-17 16:14 kissrule 阅读(281) 评论(0) 推荐(0)
摘要:https://www.runoob.com/go/go-variables.html = 是赋值, := 是声明变量并赋值。 // = 使用必须使用先var声明例如: var a a=100 //或 var b = 100 //或 var c int = 100 // := 是声明并赋值,并且系统 阅读全文
posted @ 2020-01-17 14:08 kissrule 阅读(913) 评论(0) 推荐(0)