GO基础部分(上)

本文介绍Go语言的基础知识,包括文件命名规范、关键字和保留字、可见性和声明规则等内容。同时覆盖了内置类型如布尔类型、数字类型等以及内置函数如len、cap等的使用方法。此外还介绍了init函数和main函数的区别。
摘要由CSDN通过智能技术生成

一、GO的主要特征

1.Golang文件名

所有的go源码都是以.go结尾

2.Go语言命名
2.1.Go的函数、变量、常量、自定义类型、包的命名方式遵循以下规则:

(1)首字符可以是任意unicode字符或者下划线
(2)剩余字符可以是任意unicode字符、下划线、数字
(3)字符长度不限

2.2.Go只有25个关键字
    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var
2.3.Go还有37个保留字
    Constants:    true  false  iota  nil

    Types:    int  int8  int16  int32  int64  
              uint  uint8  uint16  uint32  uint64  uintptr
              float32  float64  complex128  complex64
              bool  byte  rune  string  error

    Functions:   make  len  cap  new  append  copy  close  delete
                 complex  real  imag
                 panic  recover
2.4.可见性

(1)声明在函数内部,是函数的本地值,类似private
(2)声明在函数外部,是对当前包(包内所有的.go文件)可见,类似protect
(3)声明在函数外部且首字母大写,是对所有包可见,类似public

2.5.Go的声明

Go中有四种主要声明:

 var(声明变量), const(声明常量), type(声明类型) ,func(声明函数)

.go文件的第一行就是package声明,用来说明该文件应该属于哪个包,之后便是import声明,接下来便是类型、变量、常量、函数的声明。

二、Golang内置类型和函数

1.内置类型

1.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    -- 固定长度的数组
1.1.1 .布尔类型 bool

举个例子:var b bool = true

布尔的值只能是常量true 或 false

两个类型相同的值可以通过==或者!=运算符来进行比较并获取一个布尔类型的值
例如

var a = 1
a == 2 ->false
a == 1 ->true
1.1.2.数字类型

(1)Go语言支持整型和浮点类型数字,并且原生支持复数。

(2)Go也有基于架构的类型,例如:int、uint 和 unitptr

(3)Go 语言中没有 float 类型。

与操作系统架构无关的类型都有固定的大小,并在类型的名称中就可以看出来:
整数:
int8-128 -> 127int16-32768 -> 32767int32-2,147,483,648 -> 2,147,483,647int64-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
无符号整数:
uint80 -> 255uint160 -> 65,535uint320 -> 4,294,967,295uint640 -> 18,446,744,073,709,551,615)
浮点型(IEEE-754 标准):
float32+- 1e-45 -> +- 3.4 * 1e38float64+- 5 1e-324 -> 107 1e308
1.2.引用类型:
    slice     -- 切片(最常用)
    map     -- 映射
    chan    -- 管道

2.内置函数

Go 语言拥有一些不需要进行导入操作就可以使用的内置函数。它们有时可以针对不同的类型进行操作,例如:len、cap 和 append,或必须用于系统级的操作,例如:panic。因此,它们需要直接获得编译器的支持。
下面是一些常用的内置函数:

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

三、init函数和main函数

1. init函数

Go语言中init函数用于package初始化,是Go语言的一个重要特性
init函数主要具有以下特性:

    1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等

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

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

    4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明)

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

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

2. main函数

    Go语言程序的默认入口函数(主函数)func main()
    函数体用{}一对括号包裹。

    func main(){
        //函数体
    }

3. 异同

    相同点:
        两个函数在定义时不能有任何的参数和返回值,且Go程序自动调用。
    不同点:
        init可以应用于任意包中,且可以重复定义多个。
        main函数只能用于main包中,且只能定义一个。

两个函数的执行顺序:

对同一个go文件的init()调用顺序是从上到下的。

对同一个package中不同文件是按文件名字符串比较“从小到大”顺序调用各文件中的init()函数。

对于不同的package,如果不相互依赖的话,按照main包中"先import的后调用"的顺序调用其包中的init(),如果package存在依赖,则先调用最早被依赖的package中的init(),最后调用main函数。

如果init函数中使用了println()或者print()你会发现在执行过程中这两个不会按照你想象中的顺序执行。这两个函数官方只推荐在测试环境中使用,对于正式环境不要使用。

四、命令

以下是一些常用命令

go env 用于打印Go语言的环境信息。

go run 命令可以编译并运行命令源码文件。

go get 可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。

go build 命令用于编译我们指定的源码文件或代码包以及它们的依赖包。

go install 用于编译并安装指定的代码包及它们的依赖包。

go clean 命令会删除掉执行其它命令时产生的一些文件和目录。

go doc 命令可以打印附于Go语言程序实体上的文档。我们可以通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的。

go test 命令用于对Go语言编写的程序进行测试。

go list 命令的作用是列出指定的代码包的信息。

go fix 会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。

go vet 是一个用于检查Go语言源码中静态错误的简单工具。

go tool pprof 命令来交互式的访问概要文件的内容。

总结

以上就是今天要分享的内容,本文仅仅简单介绍了GO语言的主要特征、内置类型和函数以及一些常用命令,如有遗漏,望指出,后续文章会做补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小阿GO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值