Go基础:初学可能会有的迷惑
安装了go后敲了一遍《Go编程实例》,然后小做了个项目,现在做个总结归纳。
用
.
访问方法- fmt.Println(“one”)
- time.Now().Weekday()
-
下划线的作用:特殊标识符,用来忽略结果。- import _ 包路径 只是引用该包,仅是为了调用init()函数,无法通过包名来调用包中的其他函数
- go 中如果一个变量声明了不使用,编译器会报错,可以 - 来忽略这个变量。
= 与 := 区别
=
var 声明 1 个或者多个变量 赋值操作:=
语法是声明并初始化变量的简写
声明数组
- var a [5]int //一维数组
- var twoD [2][3]int //多维数组
切片slice: 一个比数组更 加强大的序列接口
- slice 的类型仅由它所包含的元素决定(不需要元素的个数)
- 创建一个长度非零的空 slice,需要使用内建的方法
make
- slice 和数组是不同的类型,但是它们通过 fmt.Println 打印 结果类似
map: 内置关联数据类型
- 要创建一个空 map,需要使用内建的
make
make(map[key-type]val-type)
- map 在使用 fmt.Println 打印的时候,是以 map[k:v k:v] 的格式输出的。
- 要创建一个空 map,需要使用内建的
range 相当于其他语言的 foreach
函数
- func plusPlus(a, b, c int) int {} //单返回值 三个整型参数
- func vals() (int, int) {} //多返回值函数 返回两个整型参数
- func sum(nums …int) {} //可变参函数 接受任意数目的整型参数
- 函数的三种用法
匿名函数
//intSeq函数的返回值是一个函数 func intSeq() func() int { i := 0 return func() int { i++ return i } }
递归
// `fact` 函数在到达 `fact(0)` 前一直调用自身。 func fact(n int) int { if n == 0 { return 1 } return n * fact(n-1) }
指针(地址)可以用来引用传递值或者数据结构。
结构体 (struct) 是带类型的字段 (fields) 集合
- 在表操作的时候 经常要先去声明。
- type 关键字去声明
结构体类型中定义方法 (methods),有点类似函数但它属于结构体的
- type 关键字去声明
接口
- 要在 Go 中实现一个接口,我们就需要实现接口中的所有方法。
错误处理 有一个官方包 errors
Go 协程 (goroutine) 在执行上来说是轻量级的线程。
通道(云里雾里的这个一块 后续要加强)
- 通道 (Channels) 是连接多个 Go 协程的管道。(你可以从一个 Go 协程 将值发送到通道,然后在别的 Go 协程中接收。)
- 通道缓冲:默认无缓冲,可缓存通道 允许在没有对应接收方的情况下,缓存限定数量的值。
- 通道同步:同步阻塞的方式接受go 协程运行状态。
- 通道方向:当使用通道作为函数的参数时,可以指定这个通道是不是 只用来发送或者接收值
- 通道选择器:可以同时等待多个通道操作
- 超时处理
- 非阻塞通道
- 通道关闭
- 通道遍历
18.
尚未写完 会继续更新
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: