GO快速入门三
Posted 不要做程序员的小松鼠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO快速入门三相关的知识,希望对你有一定的参考价值。
GO快速入门三
array&slice(数组&切片)
- array和其他的数组一样,slice大概就类似于STL中的vector
```
package main
import "fmt"
func main()
var a [6]int
fmt.Println(a)
s := make([]int,6,10)
s = append(s,1)
fmt.Println(s)
fmt.Println("len(a)",":",len(a))
fmt.Println("cap(a)",":",cap(a))
fmt.Println("len(s)",":",len(s))
fmt.Println("cap(s)",":",cap(s))
for i,v := range s
fmt.Println(i,v)
```
结果:
[0 0 0 0 0 0]
[0 0 0 0 0 0 1]
len(a) : 6
cap(a) : 6
len(s) : 7
cap(s) : 10
0 0
1 0
2 0
3 0
4 0
5 0
6 1
- array是值类型,slice是引用类型
- 使用make创建引用类型,所有s就是slice
- slice的cap是只slice的容量,len是元素个数,len(s)<=cap(s)
- 使用append,在slice后面追加元素
- 使用range可以进行遍历
函数多值返回
package main
import "fmt"
import "errors"
func main()
if _,err:=cacl(0,1);err==nil
fmt.Println(cacl(0,1))
if _,err:=cacl(1,2);err==nil
fmt.Println(cacl(1,2))
func cacl(x float64,y float64)(float64,error)
if x==0
return 0,errors.New("Invalid param.")
return x/y,nil
结果:0.5 <nil>
- 函数可返回多个值
- 通常会有个error,用于返回判断
- “_” 可用于接不需要使用的变量
defer
package main
import "fmt"
func main()
defer func()
fmt.Println("Good bye.")
()
fmt.Println("Good boy.")
- defer在执行所有之后执行,常用于用完需要最后处理掉的资源,如文件在打开之后一直使用,退出前需要关闭文件句柄。
- 代码中的func(),其实是匿名函数,用处很大,此处就不展开了。
以上是关于GO快速入门三的主要内容,如果未能解决你的问题,请参考以下文章