美文网首页
go 标准库之builtin

go 标准库之builtin

作者: 你家旭哥 | 来源:发表于2018-05-21 14:49 被阅读209次

废话

自从学习完go基础以后不知道何去何从了。由于是纯粹的自学并且没有任何项目需求,学好一门编程语言确实很难。为了摆脱从入门到放弃的魔咒,以下的日子里准备在班余时间自学完标准库,为以后实战铺好路子。(目前实战一脸懵逼,啥库都不会用)

学习go标准库首先从builtin包开始,这个包顾名思义就是内置包不需要引入,提到 len()可能你多少就懂一点了。说白了就是预先声明的标识符。

说明: 文中提到带Type的类型都只是说明而已,go语言中并没有此种类型

常量

const (
  true  = 0 == 0
  false = 0 != 0
)
//true false 其实就是go内置的常量
const iota = 0
//iota表示const()中规范的常量的无类型整数序列,他是零索引的(0开始)这里重点讲一哈iota。
const (
  a = iota
)
//a的值就是零
const (
  a = 5
  b = iota
)
//b的值就是1
//在const()中第几个常量,iota就是表示这个位置的索引。有时候写一个枚举类型的常量组的时候特别有用
const(
  ContentTypeLeft = iota
  ContentTypeRight
  ContentTypeTop
  ContentTypeBottom
)
//值分别是0 1 2 3,忘了说了const中不指定值就是上一个值。

变量

var nil Type 
//Type必须为pointer, channel, func, interface, map or slice.
//基本包括了go的所有引用类型。

方法


func append
Tips: 墙了再点,墙可以密我
追加元素到切片末尾,如果切片的容量够,会重切来容纳元素,如果不够会重新分配新的底层数组,返回更新过的切片,所以必须保存返回的切片,最好直接更新原变量。

func append(slice []Type, elems ...Type) []Type
// elems是可变长参数
slice = append(slice, elem1, elem2)
slice = append(slice, anotherSlice...)

func cap
计算某些类型的容量

func cap(v Type) int           //Type只支持以下几个类型
//Array: 元素数量
//Pointer to array: 指针指向的数组的元素数量
//Slice: 切片的最大容量
//Channel: 信道 buffer 容量

func close
关闭信道

func close(c chan<- Type)

这个方法只能关闭双向或者单发送信道,只能发送数据到信道的时候使用。如果一个关闭的信道所有数据都被消化了,继续接受数据是不会堵塞协程的,只会返回一个空值。这样在数据接受方面有利于我们判断信道中是否还有数据。如果我们尝试获取消化完的信道的数据,协程就会被堵塞而报错,所有推荐大家使用这个方法。

data, ok := <-c // ok表示是否还有数据bool

func complex
创建复数

func complex(r, i FloatType) ComplexType //不多说了

func copy
复制切片

func copy(dst, src []Type) int //只会复制dst和src最小的个数
//例子
src := []int{3,4}
dst := []int{1}
n := copy(dst, src)  //n为1 dst是[3] 叠加复制

func delete
删除字典中的元素,无返回值

func delete(m map[Type]Type1, key Type) //如果没有这个key,空操作。

func imag
返回复数中的虚部

func imag(c ComplexType) FloatType //只返回值 不带i

func len
返回特定类型的长度

func len(v Type) int
//Array: 数组长度
//Pointer to array: 数组长度
//Slice, or map: 切片,字典长度
//String: 字符中bytes的长度 (汉子代表3个)
//Channel: 信道中缓存的长度(肯定是未消化的)

func make
分配和初始化slice,map,chan

func make(t Type, size ...IntegerType) Type 
//这边是返回Type的值
//为什么用可变参数呢 给切片用的 设计比较巧妙
//Slice:  make([]int, 0, 10) 第一个是长度,第二个是容量
//Map: size是长度
//Channel: size是缓存的长度,不给值就是无缓存的信道

func new
分配内存,返回特定类型的空值的指针

func new(Type) *Type //最好用make,结构类型的直接用结构来初始化

func panic
结束当前协程的运行

func panic(v interface{}) //无任何返回值

当方法F调用到panic,F立即停止运行(defer方法正常运行)如果F被G方法调用,就继续调用G的defer,这个终止序列可以被recover方法控制。


func print
打印调试信息

func print(args ...Type)

func println
打印调试信息(跟print的区别就是参数之间有空格,结尾有换行)

func println(args ...Type)

func real
返回复数的实部

func real(c ComplexType) FloatType

func recover
从错误中恢复,并返回错误

func recover() interface{}
//返回值为panic的参数

type

type uintptr
uintptr是一个足以容纳任何指针的位模式的整数类型。


type error

type error interface {
  Error() string
}
//这是个接口类型,大多时候都是调用或者是支持

type byte
byte是uint8的别称


type rune
int32的别称,按照惯例,这个值是为了区别character 值和int值的,可以表示的字符多于byte能表示的字符


type string
字符串是8位字节的所有字符串的集合,通常但不一定表示UTF-8编码的文本。 一个字符串可能是空的,但不是零。 字符串类型的值是不可变的。

结束语: 其余的数据类型大家可以自己查看,没什么特别的,我就不多记录了。

相关文章

  • go 标准库之builtin

    废话 自从学习完go基础以后不知道何去何从了。由于是纯粹的自学并且没有任何项目需求,学好一门编程语言确实很难。为了...

  • go标准库: builtin

    builtin中包含了一些go语言中内置的类型,常量,函数等;它们实际被实现在语言内部,src/builtin/b...

  • golang中builtin包

    1、介绍builtin包中文官方标准库给出的介绍:builtin包为Go预声明标识符提供了文档。2、builtin...

  • Golang标准库——builtin

    builtin builtin 包为Go的预声明标识符提供了文档。此处列出的条目其实并不在builtin包中,对它...

  • golang学习资源

    教程类 Go 标准库中文文档 Go 标准库文档 Go 实例学标准库 Go入门指南The-way-to-go Go语...

  • 【RF】学习Robot Framework中的一些常用库

    1. 标准库 Robot Framework的标准库是可以直接导入使用的,不需要再另外安装。 Builtin:包含...

  • 三、数据类型和操作

    一、数据类型 Go支持的数据类型特别丰富,你可以在Go SDK/src/builtin/builtin.go 这个...

  • ride之添加查看library以及所包含的关键字

    1.基础库BuiltIn ride有自己的基础库BuiltIn(默认添加),可以通过快捷键F5查看BuiltIn库...

  • 22 Go 常用标准库简析

    Go 常用标准库 Go官方以包的形式提供功能丰富的标准库,了解这些包会让你在项目开发中如鱼得水。Go标准库很容易理...

  • Go 标准库介绍六: log

    Go 标准库介绍六: log 原文链接 http://ironxu.com/775 本文介绍Go 标准库 log ...

网友评论

      本文标题:go 标准库之builtin

      本文链接:https://www.haomeiwen.com/subject/dbxndftx.html