go 标准库之builtin

废话

自从学习完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编码的文本。 一个字符串可能是空的,但不是零。 字符串类型的值是不可变的。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容

  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 1,092评论 0 3
  • 1.安装 https://studygolang.com/dl 2.使用vscode编辑器安装go插件 3.go语...
    go含羞草阅读 1,548评论 0 6
  • 出处---Go编程语言 欢迎来到 Go 编程语言指南。本指南涵盖了该语言的大部分重要特性 Go 语言的交互式简介,...
    Tuberose阅读 18,412评论 1 46
  • Go入门 Go介绍 部落图鉴之Go:爹好还这么努力? 环境配置 安装 下载源码编译安装 下载相应平台的安装包安装 ...
    齐天大圣李圣杰阅读 4,580评论 0 26
  • 虽然发晚了,但是并未中断呀! 我特别欣慰的是,以前总是睡觉到七八点的一个室友,不知在什么原因的驱动下,今天居然学习...
    建min君阁下阅读 177评论 0 0