内容简介:主要记录一些Golang里面的基本语法范式,因为Golang这玩意实在语法和一般编程语言太特么不一样了...切片是Golang中关于数组的一个概念,它很类似于SQL语言中的视图概念,即它类似一个实体数据的镜像或快照,同时一般情况下在Golang实际项目中我们也更多的会去使用切片而不是数组本体Golang的map基本可以说就是哈希表了
主要记录一些Golang里面的基本语法范式,因为Golang这玩意实在语法和一般编程语言太特么不一样了...
数组和切片的初始化
切片是Golang中关于数组的一个概念,它很类似于 SQL 语言中的视图概念,即它类似一个实体数据的镜像或快照,同时一般情况下在Golang实际项目中我们也更多的会去使用切片而不是数组本体
// 数组的初始化 var array = [5]int // 仅声明 array := [5]int // 另外一种写法,也是一般函数体中用的更多的写法 array := [5]int{1, 2, 3, 4, 5} // 定长数组声明且赋值 array := [...]int{1, 2, 3, 4, 5} // 不定长数组声明且赋值 // 切片的初始化 slice := []int{} // 只声明,不赋值,不规定length,不规定cap slice := make([]int, 5) // 只声明,不赋值,只规定length,不规定cap slice := make([]int, 5, 10) // 只声明,不赋值,规定length,也规定cap slice := []int{1, 2, 3, 4, 5} // 声明且赋值 // 切片&数组添加元素 var s []int // 添加一个空切片 s = append(s, 0) // 这个切片会按需增长 s = append(s, 1) // 可以一次性添加多个元素 params := []int{2, 3, 4} s = append(s, params...) // 这里类似于 Python 中的*符号可变参数传入 // 二维数组&切片的初始化方式 // 二维数组的初始化 array := [2][3]int{{1, 2, 3}, {4, 5, 6}} for i := range array { for j := range array[i] { fmt.Printf("%v ", array[i][j]) } fmt.Println() } // 二维切片的初始化 array := make([][]int, 5) // 创建二维Slice,Gotour上的范例 func Create2DArray(dx, dy int) [][]uint8 { result := make([][]uint8, dx) for i := range result { result[i] = make([]uint8, dy) for j := range result[i] { result[i][j] = uint8((i + j) / 2) } } return result[:] }
Golang的map
Golang的map基本可以说就是哈希表了
func main() { // 初始化map m := make(map[string]int) // 新增键值对 m["Answer"] = 42 fmt.Println("The value:", m["Answer"]) // 修改键值对 m["Answer"] = 48 fmt.Println("The value:", m["Answer"]) // 删除键值对 delete(m, "Answer") fmt.Println("The value:", m["Answer"]) // 判断键是否存在 v, ok := m["Answer"] fmt.Println("The value:", v, "Present?", ok) }
Golang中的系统最大值&最小值表示
maxNum := math.MaxInt32 // 系统32位整型最大值 minNum := math.MinInt32 // 系统32位整型最小值
Golang中的Channel(通道)初始化
channel := chan int // 单整型通道赋值,一旦传值没有goroutine接收立即报错 bufferedChannel := make(chan int, 3) // 长度为3的整型通道初始化,只有在传入次数超过3次时才会报错
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 软件改变算力,第四范式用“1+N”模式开启产业变革新范式
- 何谓企业AI转型的1+N范式?第四范式推新一代SageOne软硬一体系统
- 漫谈数据仓库和范式
- 前端数据范式化
- 函数范式与领域建模
- React — 端的编程范式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
学习JavaScript数据结构与算法
[巴西] 格罗纳(Loiane Groner) / 孙晓博、邓钢、吴双、陈迪、袁源 / 人民邮电出版社 / 2015-10-1 / 39.00
本书首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,还介绍了动态规划和贪心算法等常用的高级算法及相关知识。一起来看看 《学习JavaScript数据结构与算法》 这本书的介绍吧!