go语言快速入门:内建函数(6)
发布日期:2021-06-30 20:24:09
浏览次数:2
分类:技术文章
本文共 3938 字,大约阅读时间需要 13 分钟。
go语言中有一些比较常用的内建函数,在这篇文章中将会进行简单的介绍。
内建函数
函数名 | 说明 | 备注 |
---|---|---|
close | 关闭channel | 仅用于channel通讯 |
delete | 从map中删除实例 | map操作 |
len | 返回字符串,slice和数组的长度 | 可用于不同的类型 |
cap | 返回容量 | 可用于不同的类型 |
new | 内存分配 | 用于各种类型 |
make | 内存分配 | 仅用于chan/slice/map |
copy | 复制slice | slice操作 |
append | 追加slice | slice操作 |
panic | 报告运行时问题 | 异常处理机制 |
recover | 处理运行时问题 | 异常处理机制 |
内建打印函数 | 主要用于不引入fmt的时候的调试,实际使用时建议使用标准库fmt | |
println | 内建打印函数 | 主要用于不引入fmt的时候的调试,实际使用时建议使用标准库fmt |
complex | 构造复数类型 | 复数操作 |
real | 抽出复数的实部 | 复数操作 |
imag | 抽出复数的虚部 | 复数操作 |
len & cap
对象 | len返回值 | cap返回值 |
---|---|---|
数组 | 数组元素个数 | 数组元素个数 |
指向数组的指针 | 数组元素个数 | 数组元素个数 |
slice | 元素个数 | slice的最大size >=len(slice) |
map操作:delete
例子代码
[root@liumiaocn goprj]# cat basic-buildin1.gopackage mainimport "fmt"func main() { m1 := make(map[string]int) m1["Mon"] = 1 m1["Tue"] = 2 m1["Wed"] = 3 fmt.Println("before delete : m1=", m1, "len(m1)=", len(m1)) println("delete element by using key Tue") delete(m1, "Tue") fmt.Println("after delete : m1=", m1, "len(m1)=", len(m1))}[root@liumiaocn goprj]#
执行结果
[root@liumiaocn goprj]# go run basic-buildin1.gobefore delete : m1= map[Mon:1 Tue:2 Wed:3] len(m1)= 3delete element by using key Tueafter delete : m1= map[Mon:1 Wed:3] len(m1)= 2[root@liumiaocn goprj]#
slice操作
例子代码
[root@liumiaocn goprj]# cat basic-buildin2.gopackage mainimport "fmt"func main() { a1 := new([10]int) a1[4] = 5 a1[7] = 8 fmt.Println("a1= ", a1, "len(a1)=", len(a1), " cap(a1)=", cap(a1)) s1 := make([]int, 5, 10) s1[0] = 5 s1[4] = 2 s2 := make([]int, 5, 10) s2[0] = 1 s2[4] = 3 fmt.Println("before copy :s1= ", s1, "len(s1)=", len(s1), " cap(s1)=", cap(s1)) fmt.Println("before copy :s2= ", s2, "len(s2)=", len(s2), " cap(s2)=", cap(s2)) println("copy(s2,s1)") copy(s2, s1) fmt.Println("after copy :s1= ", s1, "len(s1)=", len(s1), " cap(s1)=", cap(s1)) fmt.Println("after copy :s2= ", s2, "len(s2)=", len(s2), " cap(s2)=", cap(s2)) println("reset") s2[0] = 1 s2[4] = 3 fmt.Println("after reset:s1= ", s1, "len(s1)=", len(s1), " cap(s1)=", cap(s1)) fmt.Println("after reset :s2= ", s2, "len(s2)=", len(s2), " cap(s2)=", cap(s2)) println("append(s2,20)") s2 = append(s2, 6) fmt.Println("after append:s1= ", s1, "len(s1)=", len(s1), " cap(s1)=", cap(s1)) fmt.Println("after append:s2= ", s2, "len(s2)=", len(s2), " cap(s2)=", cap(s2)) s2 = append(s2, 7) s2 = append(s2, 8) s2 = append(s2, 9) s2 = append(s2, 10) fmt.Println("after append:s2= ", s2, "len(s2)=", len(s2), " cap(s2)=", cap(s2)) s2 = append(s2, 11) fmt.Println("after append:s2= ", s2, "len(s2)=", len(s2), " cap(s2)=", cap(s2))}[root@liumiaocn goprj]#
执行结果
[root@liumiaocn goprj]# go run basic-buildin2.goa1= &[0 0 0 0 5 0 0 8 0 0] len(a1)= 10 cap(a1)= 10before copy :s1= [5 0 0 0 2] len(s1)= 5 cap(s1)= 10before copy :s2= [1 0 0 0 3] len(s2)= 5 cap(s2)= 10copy(s2,s1)after copy :s1= [5 0 0 0 2] len(s1)= 5 cap(s1)= 10after copy :s2= [5 0 0 0 2] len(s2)= 5 cap(s2)= 10resetafter reset:s1= [5 0 0 0 2] len(s1)= 5 cap(s1)= 10after reset :s2= [1 0 0 0 3] len(s2)= 5 cap(s2)= 10append(s2,20)after append:s1= [5 0 0 0 2] len(s1)= 5 cap(s1)= 10after append:s2= [1 0 0 0 3 6] len(s2)= 6 cap(s2)= 10after append:s2= [1 0 0 0 3 6 7 8 9 10] len(s2)= 10 cap(s2)= 10after append:s2= [1 0 0 0 3 6 7 8 9 10 11] len(s2)= 11 cap(s2)= 20[root@liumiaocn goprj]#
复数操作
例子代码
[root@liumiaocn goprj]# cat basic-buildin3.gopackage mainimport "fmt"func main() { var c1 = complex(1.1, 2) var r1 = real(c1) var i1 = imag(c1) println("c1=", c1, " r1=", r1, " i1=", i1) fmt.Println("c1=", c1, " r1=", r1, " i1=", i1)}[root@liumiaocn goprj]#
执行结果
[root@liumiaocn goprj]# go run basic-buildin3.goc1= (+1.100000e+000+2.000000e+000i) r1= +1.100000e+000 i1= +2.000000e+000c1= (1.1+2i) r1= 1.1 i1= 2[root@liumiaocn goprj]#
转载地址:https://liumiaocn.blog.csdn.net/article/details/54804074 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月18日 05时58分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
RRT算法(快速拓展随机树)的Python实现
2019-04-30
D*算法
2019-04-30
强化学习(四) —— Actor-Critic演员评论家 & code
2019-04-30
RESTful API
2019-04-30
优化算法(四)——粒子群优化算法(PSO)
2019-04-30
数据在Oracle中的存储
2019-04-30
轨迹规划 trajectory planning
2019-04-30
AGV自动导引运输车
2019-04-30
Trie树(字典树)
2019-04-30
COMP7404 Machine Learing——KNN
2019-04-30
COMP7404 Machine Learing——SVM
2019-04-30