Go 语言入门指南:第一课-基础语法 | 青训营

136 阅读2分钟

GO语言 基础语法和常用特性解析

1. 介绍

GO语言是一种开源的编程语言,由Google开发。它具有简洁、高效和并发性强的特点,适用于构建可靠的、高性能的软件。

2. 安装GO语言

首先,你需要安装GO语言的开发环境。你可以从官方网站(golang.org)下载适合你操作系统的安装包,并按照安装指南进行安装。

3. GO语言基础语法

1). 注释

在GO语言中,注释可以用来解释代码的作用和功能。GO语言支持两种注释方式:

  • 单行注释:使用双斜线(//)进行注释,注释内容会被编译器忽略。
  • 多行注释:使用斜线加星号(/ )开始,星号加斜线( /)结束,注释内容会被编译器忽略。

这与其他语言的方法都是相同的,比较简单。

2). 包(Package)

在GO语言中,代码被组织成包(Package)。每个GO语言源文件都属于一个包,包名通常与文件所在的目录名相同。

package main

import "fmt"

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

3). 导入(Import)

在GO语言中,使用import关键字导入其他包,以便在当前包中使用其功能。

import "fmt"

4). 函数(Function)

在GO语言中,函数是一段可重用的代码块,用于执行特定的任务。函数由函数名、参数列表、返回值列表和函数体组成。

func add(a, b int) int {
    return a + b
}

5). 变量(Variable)

在GO语言中,使用关键字var声明变量。变量可以是不同的数据类型,如整数、浮点数、字符串等。

var x int = 10
var y float64 = 3.14
var name string = "John"

6). 控制流程(Control Flow)

GO语言提供了常见的控制流程语句,如条件语句(if-else)、循环语句(for)、开关语句(switch)等。

if x > 0 {
    fmt.Println("x is positive")
} else if x < 0 {
    fmt.Println("x is negative")
} else {
    fmt.Println("x is zero")
}

for i := 0; i < 5; i++ {
    fmt.Println(i)
}

switch day {
    case "Monday":
        fmt.Println("It's Monday")
    case "Tuesday":
        fmt.Println("It's Tuesday")
    default:
        fmt.Println("It's another day")
}

7). 数组和切片(Array and Slice)

GO语言提供了数组和切片两种数据结构,用于存储多个相同类型的元素。

var arr [5]int // 声明一个长度为5的整数数组
arr[0] = 1     // 设置数组元素的值
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5

slice := []int{1, 2, 3, 4, 5} // 声明一个整数切片

8). 结构体(Struct)

GO语言中的结构体是一种自定义的数据类型,用于封装多个不同类型的字段。

type Person struct {
    name string
    age  int
}

p := Person{name: "John", age: 30} // 创建一个Person结构体实例
fmt.Println(p.name, p.age)         // 访问结构体字段

4. Hello, World! 程序试试手~

我们可以从经典的"Hello, World!"程序开始。创建一个名为hello.go的文件,并在其中输入以下代码:

package main

import "fmt"

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

保存文件后,在命令行中使用以下命令运行程序:

go run hello.go

你将在命令行中看到输出:"Hello, World!"。

5. 变量和数据类型

GO语言是静态类型的语言,这意味着在使用变量之前必须先声明它们的类型。以下是一些常见的数据类型:

  • int:整数类型
  • float64:浮点数类型
  • string:字符串类型
  • bool:布尔类型

你可以使用var关键字声明变量,并使用:=进行变量的初始化。例如:

var age int
age = 25

name := "Mike"

6. 函数

GO语言使用func关键字定义函数。以下是一个简单的函数示例:

func add(a, b int) int {
    return a + b
}

我们可以通过调用函数来使用它:

result := add(3, 5)
fmt.Println(result) // 输出:8

7. 包管理

GO语言使用模块(module)来管理代码。可以使用go mod命令来初始化和管理模块。

个人看法总结

GO语言和C++在基础语法上有一些相似之处,但也存在一些区别。

  1. 语法风格:GO语言和C++在语法风格上有一些相似之处,例如使用分号(;)作为语句结束符号,使用花括号({})表示代码块等。

  2. 包和命名空间:GO语言使用包(Package)来组织代码,而C++使用命名空间(Namespace)。它们都用于避免命名冲突,并提供代码的模块化和可重用性。

  3. 函数和方法:GO语言和C++都支持函数和方法的定义和调用。函数是一段可重用的代码块,而方法是与特定类型相关联的函数。

  4. 变量和类型:GO语言和C++都支持变量的声明和定义。然而,GO语言在变量声明时需要指定类型,而C++可以使用类型推断(auto)。(这也是我个人认为非常好用又高效的功能)

  5. 控制流程:GO语言和C++都提供了条件语句(if-else)、循环语句(for、while)、开关语句(switch)等常见的控制流程语句。它们的语法和用法在某些方面略有不同。

  6. 内存管理:GO语言使用垃圾回收机制来管理内存,而C++需要手动管理内存,使用new和delete关键字进行动态内存分配和释放。

  7. 并发编程:GO语言内置了并发编程的支持,通过goroutine和channel实现并发操作。而C++需要使用线程库(如std::thread)和同步原语(如std::mutex)来实现并发。

总结下来,我觉得GO语言更加简洁和易于学习,注重并发编程和网络编程,而C++更加灵活和强大,适用于系统级编程和性能要求较高的场景。

学习资源

GO语言拥有丰富的学习资源,以下是一些推荐的资源:

这些资源将帮助我们更深入地学习和理解GO语言的各个方面。