为了账号安全,请及时绑定邮箱和手机立即绑定

GO基础深入总结

标签:
Go

GO的关键字:
包管理:package、import
变量:var、map、struct、interface、const、type
函数:func、return、defer
循环:if、else、switch、case、fallthought、default、for、break、continue、goto、range
并发:go、chan、select

GO的变量类型:
(1)整型
int(默认)、int8、int16、int32、int64、byte
uint、uint8、uint16、uint32、uint64
(2)浮点型:float32、float64(默认)
(3)复数:complex64、complex128(默认)
(4)数组:值拷贝、不同长度和不同类型的数组都是一个新类型
(5)切片:引用
(6)map:引用
(7)复合类型:interface、struct

GO的内置函数:append、cap、new、make、copy、len、delete、panic、recover
(1)append:向切片中添加一个或多个值

// 注意:有个潜在的问题,看下面的代码package mainimport "fmt"func main() {
    a := []int{1,2,3}
    b := append(a, 1)
    c := append(b, 2)
    d := append(b, 3)
    fmt.Println(c, d)
}
输出结果:[1 2 3 1 3] [1 2 3 1 3]

(2)cap:计算数组和切片已分配的内存空间

package mainimport "fmt"func main() {
    a := []int{1,2,3}
    b := make([]int, 0, 100)
    c := [3]int{}
    fmt.Println(cap(a), cap(b), cap(c))
}
输出:3 100 3

(3)new:传入一个结构体名,返回它的一个实例对象的一个引用
(4)make:为切片、map分配空间

切片:
    make([]int, 3)
    make([]int, 3, 100)map:
    make(map[int]int)

(5)copy:为切片进行值拷贝

package mainimport "fmt"func main() {
    a := []int{}
    b := []int{5}
    c := []int{5,6,7,8}
    copy(a, []int{1,2})
    copy(b, []int{1,2,3})
    copy(c, []int{1,2,3})
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
}
输出:
[]
[1]
[1 2 3 8]

(6)len:计算字符串、数组、切片、map当前已使用的空间个数
(7)delete:删除map中的一个key
(8)panic:引起恐慌、会从当前函数一直往掉用该函数的那个函数扩散,直到遇到recover或者是扩散到main函数中
(9)recover:接收恐慌



作者:laijh
链接:https://www.jianshu.com/p/db6327c4675d


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消