写点什么

【每天学点 Go 知识】Go 基础知识 + 基本数据类型快速入门

  • 2025-05-28
    上海
  • 本文字数:2283 字

    阅读完需:约 7 分钟

【每天学点 Go 知识】Go 基础知识+基本数据类型快速入门

Go 是静态语言也是动态语言,,使用一个表达式来形容 Go 语言,Go = C + Python ,说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。

一、快速入门

  1. 在 Go 中,.go 文件必须归属于一个包

package mainimport fmtfunc main() {  fmt.Println("hello")}
复制代码


  1. 如何运行 go 文件

方式一:先编译成二进制再运行go build main.go //先编译成main 二进制,然后再运行二进制./main
方式二:直接运行go run main.go // 运行的较慢,因为要先编译才运行
如果在mac上想编译成在 linux 上可运行的二进制,则使用交叉编译GOOS=linux GOARCH=amd64 go build hello.go
复制代码


所以由此可得出 go 的执行流程:.go 文件——go build 编译成可执行文件,运行结果。生成的可执行文件可以放在没有 go 环境的平台中运行。(将源码编译二进制文件)


  1. Go 程序开发注意事项

1. Go 源文件以 go 为扩展名2. Go 应用程序的执行入口是 main() 函数3. Go 语言严格区分大小写4. Go 方法是由一条条语句构成,每个语句后需要分号,Go语言会在每行后自动加分号,体现了Golang的简洁性5. Go 编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多余语句写在同一行,否则报错6. Go 语言定义的变量或者 import的包,如果没有使用到,代码不能编译通过7. 大括号都是成对出现的,缺一不可。
复制代码


  1. Go 中常用的转义字符

转义字符基本是每个语言都要学习的内容


func main() {  fmt.Println("姓名\t年龄\t籍贯\t住址\njenny\t18\tSH\tSH")}
复制代码



  1. 自动规范格式

如果写完代码之后,格式有点乱糟糟的,可以使用一键对齐


gofmt -w main.go
复制代码

二、变量

众所周知,变量表示内存中的一个存储空间,

三种变量创建及使用方式

  1. 指定变量类型,声明后若不赋值,使用默认值

    var a  int = 3
复制代码


  1. 根据值自行判定变量类型

    var b = 6
复制代码


  1. 省略 var,使用:=,:=左侧的变量不应该是已经声明过的,否则会导致编译错误

    c := 8
复制代码


注意: 运算符两边习惯各加一个空格,另外需要知晓的是程序是在内存中运行。

func main() {  var i int = 10  i = 112  fmt.Println(i)
var n = "zeng" fmt.Println(n) j := 100 fmt.Println(j)}
复制代码


多变量声明

func main() {  var i,j int   fmt.Println(i,j)
var i1,j1 int =100,200 fmt.Println(i1,j1)
n1,n2 := 10,11 fmt.Println(n1,n2) var ( z1 = 100 z2 = 200 z3 = "zeng" ) fmt.Println(z1,z2,z3)}
复制代码


变量使用注意事项

  1. 改区域的数据值可以在统一类型范围内不断变化

  2. 变量在同一个作用域内不能重名

  3. 变量 = 变量名+值+数据类型

  4. golang 的变量如果没有赋值,编译器会使用默认值,int 的默认值为 0,string 的默认值为空串。

三、变量的基本数据类型

golang 程序中整型变量在使用时,遵守保小不保大的原则,即 在保证程序正确运行下,尽量使用占用空间小的数据类型

1. 数值型

  • 整数类型(默认为 int 类型)

  • int、int8、int16、int32、int64


  • uint、uint8、uint16、uint32、uint64、byte(无符号)



注意:

bit 计算机中的最小存储单位

byte 计算机中基本的存储单元

1byte = 8bit

2. 浮点类型(默认 float64)


  • float64 的精度比 float32 的要准确,如果要保存一个精度高的数,则应该选择 float64

  • 在相同的占用字节大小的情况下,浮点数比整数能够存储的数据要大


浮点数使用细节

  1. Golang 浮点类型有固定的范围和字段长度,不受具体操作系统的影响

  2. Golang 的浮点型默认声明为 float64 类型

  3. 浮点型常量有两种表示形式

  4. 十进制数形式,如 5.12

  5. 科学计数法形式:5.1234e2 = 5.12*10^2

  6. 通常情况下,应用使用 float64,因为它比 float32 更精确

3. 字符型

(没有专门的字符型,使用 byte 来保存单个字母字符)

func main() {  var n1 byte = 'a'  fmt.Println(n1) //97  fmt.Printf("n1=%c", n1)}
复制代码


字符类型使用细节


1. 字符常量是用单引号括起来的单个字符,例如var n1 byte = 'a'2. go 中允许使用转义字符\ 来将其后的字符转变为特殊字符3. go 语言的字符使用的 UTF-8 编码,英文字母是 1 个字节,汉子是 3 个字节。4. 在 Go 中,字符的本质是一个整数,直接输出是,是该字符对应的 UTF-8 编码的码值5. 可以直接给某个变量赋一个数字,然后按格式化输出时 %c,会输出该数字对应的 unicode字符6. 字符类型中可以进行运算的,相当于一个整数,因为它都对应有 unicode 码。
复制代码

4. 布尔型(bool)

  • bool 的值只允许 true 和 false

  • bool 类型占 1 个字节

5. 字符串(string)

(在 go 中字符串是基本数据类型)

1. Go 语言的字符串的字节使用UTF-8编码标识Unicode 文本,这样Golang统一使用UTF-8编码,中文乱码问题不会再有困扰2. 字符串一旦赋值,字符串就不能修改了,在go中字符串是不可变的3. 字符串的两种标识  双引号,会识别转义字符  反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击,输出源代码等效果。func main() {  // var str string = "hello"  // str[0] = 'a' //不能修改str的内容,即go中的字符串是不可变的
str2 := "adb\naaa" fmt.Println(str2)
str3 := `str2 := "adb\naaa" fmt.Println(str2)`
fmt.Println(str3) var str4 = "hello"+"hello"+ "hello"+"hello"+"hello"+ "hello" fmt.Println(str4)
复制代码


基本数据类型默认值


示例

func main() {  var a int //0  var b string //""  var c float32//0  var d float64 //0  var e bool//false  fmt.Printf("a=%d,b=%v,c=%v,d=%v,e=%v", a, b, c, d, e)}
复制代码


上述就是 golang 中变量的基本数据类型,当然还有一些派生/复杂数据类型,比如 指针(Pointer)、数组、结构体(Channel)、函数、切片、接口、map。后续文章会详细介绍。

发布于: 刚刚阅读数: 2
用户头像

出来乍到的程序猿,有一颗成为IT精英的梦想 2020-08-28 加入

座右铭:不想当开发的测试,不是一个好测试✌️。 我是一个致力于测试开发的博主,主要职责:测试开发、CI/CD,偶尔跟着开发学习音视频知识,希望输出的内容可以帮助和我一样初入职场,经验不足的小白。

评论

发布
暂无评论
【每天学点 Go 知识】Go 基础知识+基本数据类型快速入门_Go_小曾同学.com_InfoQ写作社区