我的Go语言入门笔记1

2025年2月19日 999+浏览

一、Go 语言环境搭建

  1. 下载安装:Go 语言的官方网站(https://go.dev/dl/ ),
  2. 配置环境变量:Windows 系统设置里找到 “环境变量”,接着在 “系统变量” 中找到 “Path” 变量,点击 “编辑”,把 Go 语言安装目录下的 “bin” 文件夹路径添加进去,比如 “C:\Program Files\Go\bin”。验证:在命令行中输入go version,能正确显示 Go 语言的版本信息即可。
  3. 设置 GOPATH:GOPATH 是 Go 语言项目的工作目录,以后所有的 Go 项目代码都会存放在这个目录下。在命令行中执行以下命令(以 Windows 系统为例,其他系统可参考官方文档):set GOPATH=C:\Users\YourUsername\go ,随后把%GOPATH%\bin添加到系统的PATH环境变量中。

二、Hello, World

新建一个.go文件:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

package main声明这个程序属于main包,main包是 Go 程序的入口。import "fmt"则是引入了 Go 语言标准库中的fmt包,它主要用于格式化输入输出。func main()定义了main函数,程序就是从这个函数开始执行。fmt.Println("Hello, World!")调用fmt包中的Println函数,在控制台输出 “Hello, World!”。

保存文件后,在命令行中切换到文件所在目录,执行go run hello.go命令,能看到输出结果 “Hello, World!”。要想把程序编译成可执行文件,执行go build hello.go命令,当前目录下就会生成一个可执行文件,直接运行这个文件也能得到一样的输出。

三、变量和数据类型

在 Go 语言中,变量是存储数据的基础。声明变量的语法如下:

var variableName dataType

比如:

var num intvar str string

Go 语言的数据类型非常丰富,主要有:

  • 整型:像int、int8、int16、int32、int64,以及对应的无符号整型uint8、uint16、uint32、uint64。不同的整型适用于不同的场景,比如int8适合存储较小的整数,它的取值范围是 - 128 到 127。
  • 浮点型:float32和float64,分别表示 32 位和 64 位浮点数,主要用来处理小数。
  • 布尔型:bool,只有true和false两个值,经常在条件判断中使用。
  • 字符串:string,用于存储文本数据,Go 语言的字符串采用 UTF-8 编码,能轻松处理各种字符。

同时,Go 语言还支持类型推导,声明变量的时候可以不指定数据类型,编译器会根据初始值自动推断。例如:

var num = 10 
str := "Hello"

这里的num被推断为int类型,str被推断为string类型 。另外,还有一些特殊的声明方式,比如多个变量同时声明:

var a, b, c int
a, b, c = 1, 2, 3

或者:

a, b, c := 4, 5, 6

四、流程控制语句

  1. 条件语句:Go 语言的条件语句使用if - else结构,和其他编程语言差不多。例如:
num := 10
if num > 5 {
    fmt.Println("num大于5")
} else {
    fmt.Println("num小于等于5")
}

还能使用if - else if - else结构进行多条件判断:

score := 85
if score >= 90 {
    fmt.Println("优秀")
} else if score >= 80 {
    fmt.Println("良好")
} else if score >= 60 {
    fmt.Println("及格")
} else {
    fmt.Println("不及格")
}
  1. 循环语句:Go 语言只有for循环这一种循环结构,但它的for循环非常灵活,能实现类似while循环的功能。例如:
sum := 0
for i := 1; i <= 10; i++ {
    sum += i
}
fmt.Println("1到10的和为:", sum)

也可以用for循环实现无限循环:

for {    // 循环体}
  1. 分支语句:使用switch语句进行多分支选择。例如:
day := 3
switch day {
case 1:
    fmt.Println("星期一")
case 2:
    fmt.Println("星期二")
case 3:
    fmt.Println("星期三")
default:
    fmt.Println("其他")
}

switch语句还能省略判断条件,直接对多个表达式进行匹配:

num := 5
switch {
case num > 0 && num < 5:
    fmt.Println("num在0到5之间")
case num >= 5 && num < 10:
    fmt.Println("num在5到10之间")
default:
    fmt.Println("num不在上述范围")
}