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(),其实是匿名函数,用处很大,此处就不展开了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值