1、builtin介绍

builtin 包为Go的预声明标识符提供了文档。此处列出的条目其实并不在builtin 包中,对它们的描述只是为了让 godoc 给该语言的特殊标识符提供文档。
这个包里面描述了类型以及内置函数,这些内置函数都是为了操作类型而设定的。虽然这是一个包但是并不需要导入这个包。

2、常量

详解常量

package mainimport ("fmt"
)// 常量
// 1、常量的定义和全局变量变量定义类似,只是把var改成了const
const (X = 1Y = 2
)// 2、如果常量省略了值默认和上面一行(邻近的一行)的值是相同的,首行必须有值,因为他没有上一行可以推导出值
const (T1 = 10T2 = 19T3   //19
)// 3、iota(类似枚举)// const iota = 0 // 无类型整数值(系统定义)
// iota是一个预定义的标识符,代表顺序按行增加的无符号整数,每个const声明单元(被括号括起来)相互独立,分别从0开始。// iota是go语言的常量计数器,只能在常量的表达式中使用。
// iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。
// 使用iota能简化定义,在定义枚举时很有用。
const (n1 = iota //0n2        //1n3        //2n4        //3
)// 跳过
const (v1 = iota   // 0v2          // 1_           // 跳过v3         // 3
)// 插入
const (b1 = iotab2 = 100b3        // 100 b2中间插入,此时b3的规则就是找上一条的值赋给自己b4      // 100
)const (c1 = iota  // 0c2 = 100   // 100c3 = iota    // 2    // 接着上面的开始,c2相当于占了一个位置,所以这里是2c4           // 3
)// 多个常量定义在一行,最好是每一行的个数相同,否则容易发生错误
// 这里有两列,且首行各自赋了iota,所以,每一列的常量都会累加
const (a, b = iota + 1, iota + 2 //1,2c, d                      //2,3e, f                      //3,4
)// 为bool类型提供的两个系统常量,bool的值只能是true或false
const (true  = 0 == 0 // 无类型布尔值  --> 输出true时结果仍是truefalse = 0 != 0 // 无类型布尔值  --> 输出false时结果仍是false
)

3、new和make


/*new 和 make值类型、地址类型和引用类型值类型就是开辟在栈上的一块空间,在传递时就会拷贝一份新的不会影响到自身地址类型相对于值类型,它是地址的表示16进制,指向内存中的一块内存空间,这里面的是实际需要的数据引用类型,不同于上面两种,在go中的各种数据类型中,只有切片、map和信道是引用类型。引用类型的内存模型不同于上面两种,这种类型本身和其他数据类型别无二致,但是内部维护的数据更为复杂;切片、map和管道是多种数据复合而成的一种数据类型切片、map和管道是通过结构体将多种数据组合而成的。切片主要有三种数据 --> 指向一块内存数组地址的16进制地址 / 切片的长度(数据量) / 切片的容量(可以自动扩容)map和管道类似切片,一个指向数据的指针,以及容量等这三种数据本身是结构体(值类型),所以一旦要对变量本身操作,就必须要是传地址的(*[]int、*map[string]string等函数参数)比如 将切片传递给函数参数,在函数里面通过内置函数的append会返回一个切片,如果将返回的切片赋值给本身,那么此时原来的切片和当前的就不一样了,除非通过地址传递make内置函数是给切片、映射、或通道初始化的,主要是对他们内部维护的内存地址开辟指定空间,如果make,这块地址是nil,无法操作*/

4、len和cap

func testCap() {//数组var array1 [3]intarray1[0] = 100fmt.Println(cap(array1)) // 3// 数组指针var arrayPtr *[3]int = new([3]int)(*arrayPtr)[1] = 999fmt.Println(cap(arrayPtr)) // 3// 切片var slice []int = make([]int, 3, 6)slice[2] = 89fmt.Println(cap(slice)) // 6// 信道var channel chan int = make(chan int, 10)fmt.Println(cap(channel)) // 10var chann *chan int = new(chan int)fmt.Println(cap(*chann)) // 0
}func testLen() {//数组var array1 [3]intarray1[0] = 100fmt.Println(len(array1)) // 3// 数组指针var arrayPtr *[3]int = new([3]int)(*arrayPtr)[1] = 999fmt.Println(len(arrayPtr)) // 3// 切片var slice []int = make([]int, 3, 6)slice[2] = 89fmt.Println(len(slice)) // 3// 映射var mmp map[string]string = make(map[string]string, 3)mmp["name"] = "kiko"mmp["age"] = "23"fmt.Println(len(mmp)) // 2// 信道var channel chan int = make(chan int, 10)channel <- 10channel <- 30<-channelfmt.Println(len(channel)) // 1// 字符串str := "Hello"fmt.Println(len(str)) // 5}

5、copy

copy函数针对的是切片类型的数据。拷贝之后的对象和原来的没有数据关联,改变其中一个不会影响另一个。

func testCopy() {var src []int = []int{1, 2, 3, 4}// 目标切片对象必须初始化var dst []int = make([]int, 3)n := copy(dst, src)fmt.Println(n)   // 3fmt.Println(src) // [1 2 3 4]fmt.Println(dst) // [1 2 3]
}func testStr() {str := "hello world!"var dst []byte = make([]byte, len(str))// 字符串复制到字节切片中n := copy(dst, str)fmt.Println(n)   // 12fmt.Println(dst) // [104 101 108 108 111 32 119 111 114 108 100 33]
}

6、delete

delete函数根据键删除对应的键值对,针对map操作。

7、close

8、panic和recover




9、print和println

1、builtin标准库相关推荐

  1. ride中for循环的使用_robotframework-ride使用(Builtin标准库)

    一.创建测试项目 1.1创建测试项目 选择菜单栏file-->new project 1.2.新建测试套件 右键点击测试项目选择new suite选项 1.3.创建测试用例 右键点击测试套件选择 ...

  2. python基础课程_学习笔记13:标准库:有些收藏夹——sys

    标准库:有些收藏夹 sys sys这个模块可以让你访问和python解释器联系紧密的变量和函数. sys模块中一些重要的函数和变量 函数/变量 描写叙述 argv 命令行參数,包含脚本名称 exit( ...

  3. python守护进程进程池_Python3标准库:multiprocessing像线程一样管理进程

    Python Python开发 Python语言 Python3标准库:multiprocessing像线程一样管理进程 1. multiprocessing像线程一样管理进程 multiproces ...

  4. go学习笔记-标准库

    标准库 名称 摘要 archive tar tar包实现了tar格式压缩文件的存取.zip zip包提供了zip档案文件的读写服务. bufio bufio 包实现了带缓存的I/O操作. builti ...

  5. python标准类型内建函数_Python 标准库系列之内建函数

    Python的强大有很大一部分是因为其庞大的标准库提供了各式各样的功能,基本上日常使用中你所需要的功能都可以从中找到,从而大大减轻开发人员的压力,节省开发人员的时间,因此,要想更好的使用python, ...

  6. python标准库time_Python 标准库之时间篇

    写在之前 大家好,这是首发在我公众号「Python空间」的第 69 篇文章,欢迎关注,期待和你的交流. 在昨天的文章(Python 标准库之日期)中我们学习了 Python 标准库中「日期 & ...

  7. C 标准库—— string.h

    C 标准库 -- string.h C 标准库 -- time.h C 标准库 -- limits.h C 标准库 -- stdio.h C 标准库-- stdlib.h(包括 rand srand ...

  8. 【python标准库】sys模块全解

    文章目录 命令行传参 几个便捷的常量 监听 查找器和加载器 一些信息元组 不建议改动的信息常量 一些无参函数 其他函数 命令行传参 argv和orig_argv可以起到传递命令行参数的作用.例如新建p ...

  9. Python中级 —— 07标准库

    标准库学习 1. The Python Standard Library[https://docs.python.org/3.5/library/] ( 3.5.5 Documentation ) 1 ...

最新文章

  1. Centos安装g++错误 :No package g++ available
  2. matlab计时,暂停
  3. c++类的实例化,有没有new的区别
  4. 零基础学oracle pdf_零基础学动漫插画详细步骤大全
  5. TCP长连接,短连接
  6. 产品经理,你该如何做好后台规划
  7. Python判断两个域名的主域名是否相同
  8. 打开windows批处理大门
  9. 安装opencv3.4.0报错
  10. 看完就能用!这本Python3.6 的书玩大了!网友:牛!
  11. 《软件体系结构》 第七章 基于体系结构的软件开发
  12. ps画画模糊笔刷_杨雪果ps笔刷|杨雪果CG绘画笔刷(Blur's good brush)下载v7.0 免费版 - 欧普软件下载...
  13. MarkDown下载以及入门语法(一)
  14. 广义线性模型和广义加法模型_广义线性模型代码
  15. .NET 中的 GAC
  16. 运行期间动态切换Redis数据库
  17. 持安应用层零信任,开启数据安全上帝视角
  18. 不是你需要中台,而是一名合格的架构师(附各中台建设PPT)
  19. bitcoin区块结构分析
  20. phpstudy搭建upload-labs

热门文章

  1. matlab 韩明距离_Matlab计算两集合间的海明距离
  2. 【100个 Unity实用技能】☀️ | 字符串转int 和 字符串转float 方法整合
  3. python操控微信 wxpy教程
  4. 单墫老先生提出的问题的初步思考
  5. Spring AOP基础组件 Joinpoint
  6. 按需名人:什么是客串?
  7. DNS 服务器 ip
  8. golang图片式水印处理
  9. 1. 机器学习与深度学习——关系、无/半/有监督学习、差异、主流框架
  10. ICSL WEB攻击模式及防范方法