51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

软件教程

go结构体

go结构体

厉飞雨 阅读(41) 评论(0) 赞(4)

Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。go语言结构体 类型别名和自定义类型 {#autoid-0-0-0} ========================== 自定义类型 {#autoid-1-0-0} ---------------...

go函数进阶

go函数进阶

厉飞雨 阅读(50) 评论(0) 赞(2)

函数进阶 {#autoid-1-4-3} ==================== 变量作用域 {#autoid-2-0-3} --------------------- ### 全局变量 {#autoid-2-1-0} 全局变量是定义在函数外部的变量,它在程序整个运行周期内都有效。 在函数中可以访问到全局变量。 ```go package main import...

go匿名函数

go匿名函数

厉飞雨 阅读(58) 评论(0) 赞(4)

### 匿名函数 {#autoid-2-4-0} 函数当然还可以作为返回值,但是在Go语言中函数内部不能再像之前那样定义函数了,只能定义匿名函数。匿名函数就是没有函数名的函数,匿名函数的定义格式如下: ```go func(参数)(返回值){ 函数体 } ``` 匿名函数因为没有函数名,所以没办法像普通函数那样调用,所以匿名函数需要保存到某个变量或者作为立即...

go闭包

go闭包

厉飞雨 阅读(63) 评论(0) 赞(4)

### 闭包 {#autoid-2-4-1} 闭包指的是一个函数和与其相关的引用环境组合而成的实体。简单来说,`闭包=函数+引用环境`。 首先我们来看一个例子: ```go func adder() func(int) int { var x int return func(y int) int { x += y return x } } func ...

go defer

go defer

厉飞雨 阅读(102) 评论(0) 赞(6)

defer语句 {#autoid-2-4-2} ----------------------- Go语言中的`defer`语句会将其后面跟随的语句进行延迟处理。在`defer`归属的函数即将返回时,将延迟处理的语句按`defer`定义的逆序进行执行,也就是说,先被`defer`的语句最后被执行,最后被`defer`的语句,最先被执行。 举个例子: ```go func m...

go map(go语言map)

go map(go语言map)

厉飞雨 阅读(79) 评论(0) 赞(5)

Go语言中提供的映射关系容器为`map`,其内部使用`散列表(hash)`实现。 map是一种无序的基于`key-value`的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为: ```go make(map[KeyType]ValueType, [cap]) ``` 其中cap...

go语言函数(go 函数)

go语言函数(go 函数)

厉飞雨 阅读(68) 评论(0) 赞(5)

Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于"一等公民"。 发布于2017/06/19 ,更新于2017/06/19 20:08:00 \| [Golang](https://www.liwenzhou.com/categories/Golang) \|总阅读量:5445次 函数是组织好的、可重复使用的、用于执行指定任务的代码块。...

go语言指针 (new和make)go语言new go语言make(go make , go new)

go语言指针 (new和make)go语言new go语言make(go make , go new)

厉飞雨 阅读(78) 评论(0) 赞(5)

go语言 只需要记住, 不存在指针操作。 我们只需要记住两个符号:`&`(取地址)和`*`(根据地址取值) 指针地址和指针类型 {#autoid-1-0-0} ------------------------- 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。Go语言中使用`&`字符放在变量前面对变量进行"取地址"操作。...

go语言 new与make的区别 (go make, go new)

go语言 new与make的区别 (go make, go new)

厉飞雨 阅读(63) 评论(0) 赞(8)

### new与make的区别 {#autoid-1-3-2} 1. 二者都是用来做内存分配的。 2. make只用于slice、map以及channel的初始化,返回的还是这三个引用类型本身; 3. 而new用于类型的内存分配,并且内存对应的值为类型零值,返回的是指向类型的指针。 4. [go语言指针 (new和make)go语言new go语言make(go make...