GO语言基础入门指南 上篇 | 豆包MarsCode AI刷题

194 阅读4分钟

GO语言基础入门指南 上篇

一、安装 Go 语言环境

  1. 下载安装包

    • 访问 Go 官方网站(golang.org/dl/),根据你的操作系统(如 Windows、Linux、MacOS)下载相应的安装包。
    • 对于 Windows 用户,下载.msi 文件后,双击运行安装程序,按照提示完成安装。安装路径可以自定义,但通常默认路径是C:\Go
    • MacOS 用户可以使用.pkg 安装包,安装过程类似,安装目录一般是/usr/local/go
    • Linux 用户可以下载.tar.gz 压缩包,解压到合适的目录,如/usr/local,然后设置环境变量。
  2. 配置环境变量

    • 在 Windows 系统中,需要将 Go 的安装目录下的bin文件夹路径添加到系统的PATH环境变量中。可以通过右键点击 “此电脑”,选择 “属性”,然后在 “高级系统设置” 中找到 “环境变量” 进行设置。
    • 在 Linux 和 MacOS 系统中,在终端中编辑~/.bashrc~/.zshrc文件(根据你使用的 Shell),添加export PATH=$PATH:/usr/local/go/bin(假设 Go 安装在/usr/local/go),然后运行source ~/.bashrcsource ~/.zshrc使配置生效。

二、Hello World 程序

  1. 创建代码文件

    • 在你的本地磁盘上创建一个新的文件夹作为 Go 项目的工作空间,比如my_go_projects
    • 在这个文件夹下创建一个名为main.go的文件,文件名可以自定义,但如果是一个可执行程序,一般建议使用main.go
  2. 编写代码

    • 使用文本编辑器(如 Visual Studio Code、Sublime Text 等)打开main.go文件,输入以下代码:

package main
import "fmt"
func main() {
    fmt.Println("Hello, World!")
}
  • 代码解释:

    • package main:表示这是一个主包,Go 程序的入口点必须在main包中。

    • import "fmt":引入fmt包,fmt包提供了格式化输入输出的功能。

    • func main():这是程序的主函数,程序从这里开始执行。

    • fmt.Println("Hello, World!"):调用fmt包中的Println函数,在控制台打印出Hello, World!字符串。

  1. 运行程序

    • 在终端中,切换到main.go所在的目录,然后运行以下命令:

      • 在 Windows 系统中,如果已经正确配置了环境变量,可以在命令提示符(CMD)中输入go run main.go
      • 在 Linux 和 MacOS 系统中,在终端中输入go run main.go

三、基本语法

  1. 变量声明与赋值

    • 变量声明:

      • 使用var关键字来声明变量。例如:var a int,这里声明了一个整数类型的变量a
      • 也可以同时声明多个变量,如var b, c float64,声明了两个float64类型(双精度浮点数)的变量bc
    • 变量赋值:

      • 变量声明后可以进行赋值,例如a = 10。也可以在声明变量的同时赋值,如var d = 20,Go 语言会自动推断变量d的类型为int
      • 还有一种简洁的变量声明和赋值方式,称为短变量声明,使用:=操作符。例如e := 30,但这种方式只能在函数内部使用。
  2. 数据类型

    • 基本数据类型:

      • 整数类型:包括int(有符号整数,根据操作系统可能是 32 位或 64 位)、int8(8 位有符号整数)、int16(16 位有符号整数)、int32(32 位有符号整数)、int64(64 位有符号整数),还有对应的无符号整数类型uintuint8等。
      • 浮点数类型float32(单精度浮点数)和float64(双精度浮点数)。
      • 布尔类型bool,只有truefalse两个值。
      • 字符类型rune(实际上是int32的别名),用于表示单个字符。
      • 字符串类型string,例如str := "Hello"
    • 复合数据类型:

      • 数组:具有固定长度的同类型元素的集合。例如var arr [5]int声明了一个包含 5 个整数的数组。

      • 切片:切片是对数组的引用,可以动态地增长和收缩。例如slice := []int{1, 2, 3}创建了一个整数切片。

      • 结构体:可以将不同类型的变量组合在一起。例如:

type Person struct {
    Name string
    Age  int
}
p := Person{Name: "Alice", Age: 25}
  • 映射(Map) :类似于其他语言中的字典,是无序的键值对集合。例如m := map[string]int{"apple": 1, "banana": 2}