Golang
Golang
Loong Tu
这个作者很懒,什么都没留下…
展开
-
type switch
文章目录type switch的基本用法在switch中声明变量参考type switch的基本用法type switch是Go语言中一种特殊的switch语句,它比较的是类型而不是具体的值。它判断某个接口变量的类型,然后根据具体类型再做相应处理。注意,在type switch语句的case子句中不能使用fallthrough。用法如下:switch x.(type) {case Typ...原创 2020-04-30 15:19:46 · 384 阅读 · 0 评论 -
闭包的几个例子
文章目录在闭包内修改引用的变量闭包的记忆效应闭包是引用了自由变量的匿名函数,被引用的自由变量和函数一同存在,即使已经离开了自由变量的环境,自由变量也不会被释放或者删除,在闭包中可以继续使用这个自由变量。函数是编译期静态的概念,而闭包是运行期动态的概念。简单的说:函数 + 引用环境 = 闭包。在闭包内修改引用的变量闭包对它作用域上部变量的引用,可以进行变量修改。package main...原创 2020-04-29 15:45:59 · 624 阅读 · 0 评论 -
匿名函数的几个例子
文章目录在定义时调用匿名函数将匿名函数赋值给变量匿名函数用作回调函数使用匿名函数实现操作封装在定义时调用匿名函数匿名函数可以在声明后调用:package mainimport ( "fmt")func main() { func(data int) { fmt.Println(data) }(100)}将匿名函数赋值给变量匿名函数体可以被赋值:package ...原创 2020-04-26 14:47:04 · 628 阅读 · 0 评论 -
函数的参数传递
文章目录切片的传递改变元素值增加元素参考go语言中传入和返回参数在调用和返回时都使用值传递,需要注意的是指针、切片和map等引用型对象指向的内容在参数传递中不会发生复制,而是将指针进行复制,类似于创建一次引用。测试参数传递:package mainimport ( "fmt")// 用于测试值传递效果的结构体type Data struct { complax []int...原创 2020-04-26 11:30:44 · 221 阅读 · 0 评论 -
字符串的链式处理
用多个函数对字符串进行链式处理:package mainimport ( "fmt" "strings")func removePrefix(str string) string { return strings.TrimPrefix(str, "go")}// 字符串处理函数,传入字符串切片和处理链func StringProcess(list []string, ch...原创 2020-04-26 10:59:18 · 439 阅读 · 0 评论 -
切片的几点知识
切片在扩容时,是按容量的2倍数进行扩容的。package mainimport ( "fmt")func main() { var numList []int for i := 0; i < 16; i++ { numList = append(numList, i) fmt.Printf("len: %d, cap: %d, pointer: %p\n", le...原创 2020-04-24 17:59:08 · 387 阅读 · 0 评论 -
fmt占位符
文章目录普通占位符布尔占位符整数占位符浮点数和复数的组成部分(实部和虚部)字符串与字节切片指针其它标记其他定义示例类型和变量:type Human struct { Name string}var people = Human{Name:"zhangsan"}普通占位符占位符说明举例输出%v相应值的默认格式Printf("%v", people...原创 2020-04-23 19:06:03 · 204 阅读 · 0 评论 -
数据类型的几点知识
go语言在声明变量时,自动对变量对应的内存区域进行初始化。每个变量会初始化为其类型的默认值:整型和浮点型变量默认为0;字符串变量默认为空字符串;布尔型变量默认为false;切片、函数、指针变量默认为nil。package mainimport ( "fmt")func main() { var ( a int b float32 c string d b...原创 2020-04-23 11:38:46 · 146 阅读 · 0 评论 -
三个点的用法
文章目录变长的函数参数调用拥有变长参数列表的函数标识数组元素个数Go命令行中的通配符在Golang中,三个点一共会用在四个地方:变长的函数参数如果最后一个函数参数的类型的是 ...T,那么在调用这个函数的时候,我们可以在参数列表的最后使用若干个类型为 T 的参数。这里,...T 在函数内部的类型实际是 []T。func Sum(nums ...int) int { res := 0...原创 2020-01-22 11:31:37 · 537 阅读 · 0 评论 -
为什么不用%v打印int和string
Nothing bad will happen, but the %d verb instructs the fmt package to print is as a number (using base 10), and the %v verb means to use the default format which can be overridden.See this example:t...原创 2020-01-22 11:29:34 · 213 阅读 · 0 评论