[go基础] go的内置类型、函数以及Init函数和main函数

文章详细介绍了Go语言中的内置类型,包括值类型如bool、int、float、string、complex以及引用类型如slice、map、chan。此外,还讨论了内置函数如append、close、delete等的功能。文章强调了init函数的作用,它是程序执行前进行包初始化的函数,按照包导入依赖关系和源文件顺序执行。最后,提到了main函数作为Go程序的入口点。
摘要由CSDN通过智能技术生成

内置类型

1、值类型

    bool
    int(32 or 64), int8, int16, int32, int64
    uint(32 or 64), uint8(byte), uint16, uint32, uint64
    float32, float64
    string
    complex64, complex128
    array

2、引用类型(也称:值类型)

    slice   -- 序列数组(最常用)
    map     -- 映射
    chan    -- 管道

内置函数

    append          用来追加元素到数组、slice中,返回修改后的数组、slice
    close           主要用来关闭channel
    delete          从map中删除key对应的value
    panic           停止常规的goroutine  (panic和recover:用来做错误处理)
    recover         允许程序定义goroutine的panic动作
    imag            返回complex的实部   (complex、real imag:用于创建和操作复数)
    real            返回complex的虚部
    make            用来分配内存,返回Type本身(只能应用于slice, map, channel)
    new             用来分配内存,主要用来分配值类型,比如int、struct。返回指向Type的指针
    cap             capacity是容量的意思,用于返回某个类型的最大容量(只能用于切片和 map)
    copy            用于复制和连接slice,返回复制的数目
    len             来求长度,比如string、array、slice、map、channel ,返回长度
    print、println  底层打印函数,在部署环境中建议使用 fmt 包

Init函数

go 语言中的函数 init ,它可以在所有程序执行开始前被执行,并且每个 package 下面可以存在多个 init 函数。

1、init特征

    1 init函数是用于程序执行前做包的初始化的函数。

    2 每个包可以拥有多个init函数

    3 包的每个源文件也可以拥有多个init函数

    4 init 函数没有输入参数,返回值,也没有声明,无法引用

    5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序

    6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用

    7 无论包被导入多少次,init 函数只会执行一次

2、init函数加载顺序

        1)优先级最高的是 package 加载,先层层递归进行包加载

        2)每个包中的加载顺序是:const -> var -> init

3、package 中多个 init 的执行顺序

        1)如果当前包下有多个 init 函数,首先按照源文件名的字典序从前往后执行

        2)若一个文件中出现多个 init 函数,则按照出现顺序从前往后进行执行

4、加载顺序总结

        从当前包开始,如果当前包 import 了多个依赖包,先加载依赖包,层层递归初始化各个包,
在每一个包中,按照源文件的字典序从前往后执行,每一个源文件中, 优先初始化常量,变量,最后是 init 函数,当出现多个 init 函数时,则按照出现的顺序从前往后一次执行,每一个包都初始化完成后,递归返回,初始化当前包。

main函数

    Go语言程序的默认入口函数(主函数):func main()
    package main 
    func main(){
        //函数体
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值