![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
Foolish_nick
这个作者很懒,什么都没留下…
展开
-
go中的别名类型和潜在类型
type MyString = string这条声明语句表示,MyString是string类型的别名类型。顾名思义,别名类型与其原类型恐怕只是名称上,它们是完全相同的。源类型与别名类型是一对概念,是两个对立的称呼。别名类型主要是为了代码重构而存在的。如果像下面这样定义:type MyString2 string // 注意,这里没有等号。MyString2和string就...转载 2019-01-11 16:33:16 · 1293 阅读 · 0 评论 -
go中的单向通道
//chan只能接收,无法发送 var uselessChan = make(chan<- int, 1) uselessChan <-1 i:=<-uselessChan// invalid operation: <-uselessChan (receive from send-only type chan<- int) fmt.Println(i)...转载 2019-01-17 11:07:57 · 891 阅读 · 1 评论 -
switch语句中的switch表达式和case表达式之间的联系
package mainimport "fmt"func main() { value1 := [7]int8{0, 1, 2, 3, 4, 5, 6} switch 1 + 3 { case value1[0], value1[1]: fmt.Println("0 or 1") case value1[2], value1[3]: fmt.Println("2 or 3...转载 2019-01-21 14:18:28 · 5603 阅读 · 0 评论 -
panic defer recover
panic发生时,程序控制权的转移:package mainimport "fmt"func main() { fmt.Println("Enter function main.") caller1() fmt.Println("Exit function main.")}func caller1() { fmt.Println("Enter function call...转载 2019-01-21 16:03:37 · 189 阅读 · 0 评论 -
go中的数组和切片
声明:package mainimport "fmt"func main() { // 数组声明 s1 := make([]int,5) fmt.Printf("The length of s1: %d\n", len(s1)) //5 fmt.Printf("The capacity of s1: %d\n", cap(s1)) //5 fmt.Printf("T...转载 2019-01-16 09:14:36 · 201 阅读 · 0 评论 -
go中的值类型和引用类型
值类型和引用类型值类型基本数据类型: int 系列, float 系列, bool, string 、数组和结构体struct使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中。当使用等号=将一个变量的值赋给另一个变量时,如 j = i ,实际上是在内存中将 i 的值进行了拷贝。可以通过 &i 获取变量 i 的内存地址。 值拷贝引用类型:指针、slice切...转载 2019-01-17 09:22:47 · 235 阅读 · 0 评论 -
go协程实例-1
package mainimport ( "fmt")func main() { c:=make(chan int) go print(c) c<-1 c<-2 //保障协程运行完毕,主协程main运行结束之后,其他协程也全部结束 //time.Sleep(time.Duration(time.Second*5))}func print(c chan i...转载 2019-01-30 11:39:09 · 470 阅读 · 0 评论 -
go协程实例-2
package mainimport ( "fmt")type worker struct { channel chan int done chan bool}func main() { var workers [10]worker for i:=0;i<10 ;i++ { workers[i]=worker{ make(chan int), ...转载 2019-01-30 14:01:59 · 331 阅读 · 0 评论 -
go中的变量重名
变量的查找过程:首先,代码引用变量的时候总会有限查找当前代码块中的那个变量。注意,这里的“当前代码块”仅仅是引用变量的代码所在的那个代码块,并不包含任何子代码块。 其次,如果当前代码块中没有声明以此为名的变量,那么程序会沿着代码块的嵌套关系,从直接包含当前代码块的那个代码块开始,一层一层地查找。 一般情况下,程序会一直查找到当前代码包代表的代码块。如果仍然找不到,那么GO语言的编译器就会报...转载 2019-01-11 15:20:58 · 1032 阅读 · 2 评论 -
go中的变量重声明
变量重声明含义是对已经声明过的变量再次声明。变量重声明的前提条件如下:1.由于变量的类型在其初始化时就已经确定了,所以对它再次声明时赋予的类型必须与其原本的类型一致,佛足额会产生编译错误。2.变量的重声明只可能发生在某一个代码块中。如果与当前的变量重名的是外层代码块的变量,那就是另一种含义了。3.变量的重声明只有在使用短变量声明时才会发生,否则也无法通过编译。如果要在此处声明全新的...转载 2019-01-10 15:10:17 · 1463 阅读 · 0 评论 -
go中的方法到底是个啥
在 Go 语言里,方法和函数只差了一个,那就是方法在 func 和标识符之间多了一个参数。type user struct { name string, email string,}//这是函数的定义func notify(email string) { fmt.Println("Email is %s", ema...原创 2018-09-08 10:20:24 · 369 阅读 · 0 评论 -
用go写斐波纳契
package mainimport ( "fmt")//0 1 1 2 3 5 8func fibonacci() func(int) int { a0:=0 a1:=1 return func(i int) int { if i==0{ return a0 }else if i==1{ return a1 }else{ temp:=a0+a1...原创 2018-09-07 14:32:47 · 138 阅读 · 0 评论 -
go中的值传递和引用传递
切片和地图都是引用类型。当地被赋值为一个新变量的时候,它们指向同一个内部数据结构。因此,改变其中一个变量,就会影响到另一变量。以下为引用类型示例:package mainimport "fmt"/**和 slices 类似,map 也是引用类型。当 map 被赋值为一个新变量的时候,它们指向同一个内部数据结构。因此,改变其中一个变量,就会影响到另一变量。 */ fun...原创 2018-10-23 18:05:59 · 1072 阅读 · 0 评论 -
go中的指针
指针的声明: a:=99 var b *int b=&a c:=88 d:=&c这时指针b和d的内容是a和c的内存地址。0xc0420540800xc0420540b0go中的指针是不能运算的: e:=55 f:=&e f++报错: invalid operation: f++ (non-numeric type *in...原创 2018-10-30 18:35:33 · 197 阅读 · 0 评论 -
go中的结构体--匿名字段
当我们创建结构体时,字段可以只有类型,而没有字段名。这样的字段称为匿名字段(Anonymous Field)。 type Person struct { string int}func main() { //虽然匿名字段没有名称,但其实匿名字段的名称就默认为它的类型。 p := Person{"Naveen", 50} fmt.Println(p) //虽然匿名字段没...原创 2018-11-01 17:51:06 · 1928 阅读 · 1 评论 -
go中的test
package main//每一个test文件必须引入testing的包import ( "testing" "fmt")//测试用例必须以Test开始,否则不会执行func eee(t *testing.T) { res:=Print1to20() if 20 != res{ fmt.Println("wrong in test") return } fmt.P...原创 2018-12-02 12:08:55 · 183 阅读 · 0 评论 -
DevOps+Go
go程序的自动发布,在某课网上看到了这么个课程,看了下内容,大致意思是:用某个触发机制或者钩子,调用shell脚本,对服务器里的程序进行更新执行,这里的触发机制或者钩子可以是手动执行shell脚本,利用git的钩子。下面是大致实现步骤:1 简单网页程序:package mainimport ( "net/http" "io")func firstPage(w http....原创 2019-03-27 16:03:03 · 911 阅读 · 0 评论