
go
jiang_mingyi
想专注于整个软件开发流程,现阶段有部分前端开发经验和少量的后端开发经验
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Go 二维切片初始化
用golang刷题是真的费劲,但是要练语法,还是没办法呀。 这里说一下初始化一个n*n的二维切片: f := make([][]int, n) for i := 0; i < len(matrix); i++ { f[i] = make([]int, n) } 其实可以直接用 f := [n][n]int 建立一个二维数组,但是go的数组类型是带...原创 2018-08-10 18:00:47 · 23165 阅读 · 6 评论 -
Go实现while
golang 里面没有while关键字,可以用for+break实现 i:=0 for { do something if i <= 10 { break; } } 与java里面等价的while: int i = 0; while(i<10){// notice there is only < do something ...原创 2018-08-10 21:19:21 · 32599 阅读 · 1 评论 -
Go 用list实现stack和queue
go的container/list 包里面带的list,有在链表头部和尾巴插入元素,和获取头部和尾部元素的操作,因此我们可以用list来实现栈和队列的功能。 import ( "container/list" "fmt" ) func StackTest() { stack := list.New() for i := 0; i < 5; i++ { ...原创 2018-08-13 20:42:57 · 1966 阅读 · 0 评论 -
golang 平行赋值的原理(个人理解)
对于golang, 交换两个数很简单,如下这么写就可以了: i, j = j, i 等号左边和右边含有多个表达式,这就是平行赋值。 赋值分为两个步骤: 计算等号左边的操作数的索引表达式和取址表达式,计算等号右边的表达式。 赋值 我们来看下面一段代码会输出什么? func main() { i := 1 s := []string{"A", "B", "C"} ...原创 2018-08-18 17:45:39 · 2645 阅读 · 0 评论 -
平行赋值中遇到的变量作用域问题
var a int a, b := 1,2 像这样的赋值是允许的,但是当出现如下情况时: var a int for i:=0; i<3; i++ { a, err := f() } // 在这里得不到for代码块里面的a 一不留神,坑就来了。for 代码块里面的a是for代码块的本地变量,而不是for代码库外面的全局变量 var a int for i:=0; i<...原创 2018-08-18 21:30:34 · 368 阅读 · 0 评论 -
go range使用的注意事项
首先来看下面一段代码是否有问题: package src import ( "testing" ) type A struct { ele1 int ele2 string } func TestRange(t *testing.T) { aSlice := make([]A, 5) for i:=0; i<5; i++ { ...原创 2018-09-08 15:58:50 · 1143 阅读 · 1 评论