Go语言的包管理

1 概述 Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。 2 main包 Go 语言的入口 main() 函数所在的包(pa...
阅读全文

Go语言方法规则

Go语言方法规则 根据调用者不同,方法分为两种表现形式:方法(method value)、方法表达式(method expression)。 两者都可像普通函数那样赋值和传参,区别在于 方法 (met...
阅读全文
Go语言中映射表map的使用 函数代码

Go语言中映射表map的使用

1 概述 Go语言中的键值对(key->value)集合,称之为映射map。映射map是变长类型,定义时不需要指定长度。映射map是无序的,遍历是的顺序不可期,原因是底层由hash表实现。 逻辑...
阅读全文

go语言坑之for range

go只提供了一种循环方式,即for循环,在使用时可以像c那样使用,也可以通过for range方式遍历容器类型如数组、切片和映射。但是在使用for range时,如果使用不当,就会出现一些问题,导致程...
阅读全文

Go语言互斥锁

Go语言互斥锁 Go语言的sync包中实现了两种锁 Mutex (互斥锁)和 RWMutex (读写锁),其中 RWMutex 是基于 Mutex 实现的,只读锁的实现使用类似引用计数器的功能。 互斥...
阅读全文

Go语言递归函数

Go语言递归函数 递归,就是在运行的过程中调用自己。 一个函数调用自己,就叫做递归函数。 构成递归需具备的条件: 1、子问题须与原始问题为同样的事,且更为简单。 2、不能无限制地调用本身,须有个出口,...
阅读全文
Go语言的那些坑 函数代码

Go语言的那些坑

1.  背景 Golang是我最喜欢的一门语言,它简洁、高效、易学习、开发效率高、还可以编译成机器码。虽然它一出世,就饱受关注,而且现在在市面上逐渐流行开来,但是,它毕竟是一门新兴语言,还有很多让人不...
阅读全文

Go语言反射之值反射

反射第二篇,值反射。类型反射请参考,Go语言反射之类型反射。 1 概述 反射不仅可以获取值的类型信息,还可操作变量的值。使用 reflect.Value 类型操作变量的值。 2 值反射对象 refle...
阅读全文