编辑
2023-12-04
🧰语言-go
00
请注意,本文编写于 562 天前,最后修改于 225 天前,其中某些信息可能已经过时。

目录

基础语法:main函数要点
基础语法:包声明
基础语法:包引入包
Bool类型
string类型
基础语法:string声明
基础语法:string长度
基础语法:strings包
[]byte和string
基础语法:rune类型
基础语法:bool、int、uint、float家族
基本类型:match包
基本类型:数字类型的极值
基础语法: byte类型
基础语法:基本类型总结

基础语法:main函数要点

  • 无参数、无返回值

  • main方法必须要在main包里面go run main.go就可以执行

  • 如果文件不叫main.go,则需要go build得到可运行的文件,而后直接运行

image.png

基础语法:包声明

  • 语法形式:package xxxx
  • 字母和下划线的组合
  • 可以和文件夹不同名字
  • 同一个目录下的文件声明一致,但是测试文件可以不同

image.png

一般情况下使用package my_name,除非涉及到作用域的时候使用_test结尾

image.png

Tips

使用Goland来创建文件,它会自动加上package

基础语法:包引入包

  • 引入包语法形式:import [alias] xxx
  • 如果一个包引入了但是没有使用,会报错
  • 匿名引入:前面多一个下划线,匿名变量是为了触发包里的init方法

image.png

Tips

除了匿名引用,Goland会帮你自动引入你代码里面用的包,在你不用之后也会删除

在Goland修改名字小技巧:右键-refactor-rename,就会都会修改名字

Bool类型

bool类型就两个取值:true和false

bool运算:

  • 且 a &&b
  • 或 a||b
  • 取反 !a

组合取反是一个很容易犯错的地方?

  • !(a&&b)等价于什么?
  • !(a||b)等价于什么?

string类型

基础语法:string声明

  • string
    • 双引号引起来,则内部双引号需要使用\转义
    • 引号引起来,可以换行

image.png

tip

不建议自己手写转义,而是自己先写好,然后复制到Goland,IDE会自动完成转义。

基础语法:string长度

  • string的长度很特殊
    • 字节长度:和编码无关,用Len(str)获取
    • 字符数量:和编码有关,用编码库来计算

image.png

相关信息

如果你觉得字符串里边会出现非ASCII的字符,就记得用utf8库来计算“长度”

拼接字符串和int的方法

go
println("hello" + strconv.Itoa(i:123))

基础语法:strings包

  • string的拼接直接使用+好就可以。需要注意的是,某些语言支持string和别的类型拼接,但是Golang不可以
  • strings主要方法(你所需要的全部都可以找到,依赖于IDE提示最好):
    • 查找和替换
    • 大小写转换
    • 字符串相关
    • 相等

image.png

[]byte和string

一般来说很少单独使用byte,都是使用[]byte,即byte的切片

[]byte和string之间可以互相转换

你可以看到,类型转化在Go里面的语法就是Dst(Src)。Dst就是你的目标类型

不要担心不能转,因为不能转的编译器都会直接报错

image.png

基础语法:rune类型

  • rune,直观理解,就是字符
  • rune不是byte
  • rune本质是int32,一个rune四个字节
  • rune在很多语言里是没有的,与之对应的是,Golang没有char类型。rune不是数字,也不是char,也不是byte

image.png

基础语法:bool、int、uint、float家族

  • bool:true,false
  • int8,int16,int32,int64,int【8代表比特,int用几个字节取决于cpu,大多数都是8字节】
  • uint8,uint16,uint32,uint64,uint(明确知道不是负数),类似int家族,优先使用uint
  • float32,float64(无脑用float64)
  • 在Go里面四则运算分别对应于:
* +:加法,还有特殊的自增写法++ * -:减法,还有特殊的自减写法-- * *:乘法 * /:除法

基本类型:match包

在Go里面,更加复杂的运算都在match包里面,包括三角函数、聚合函数等。用法:直接输入match,gitland就会有提示

基本类型:数字类型的极值

数字类型的极值都在match包里面,作为常量。

  • int和unit组都有最大值和最小值
  • float32和float64只有最大值和最小正书,没有最小值

注意:低版本的GoSDK不一定有全部的极值的常量

image.png

类型不同不能进行相加减

image.png

基础语法: byte类型

  • byte,字节,本质是uint8
  • 对应的操作包在bytes上

image.png

image.png

基础语法:基本类型总结

  • Golang的数字类型明确标注了长度、有符号
  • Golang不会帮你做类型转换,类型不同无法通过编译,也因此,string只能和string拼接
  • Golang有一个很特殊的rune类型,接近一般语言的char或者character的概念,非面试情况下,可以理解为"rune=字符"
  • string遇事不决,找strings包

本文作者:Eric

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!