Go 语言入门指南:基础语法和常用特性解析 | 青训营

38 阅读2分钟

Go 语言,也称为 Golang,是一个高性能且易于学习的编程语言,适合处理复杂的并发任务。

Hello, World

在开始我们的学习之前,让我们先从编写一个标准的 "Hello, World!" 程序开始:

package main

import (
	"fmt"
)

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

变量和常量

在 Go 语言中,你可以使用 var 关键字来声明一个变量,使用 const 关键字来声明一个常量。Go 语言支持自动类型推断,你也可以显式声明变量的类型。

var a = "initial"
var b, c int = 1, 2
var d = true
var e float64
f := float32(e)
g := a + "foo"

const s string = "constant"
const h = 500000000
const i = 3e20 / h

控制结构

Go 语言的控制结构包括 if/elseforswitch 等。值得注意的是,Go 语言的 if 语句不需要括号包围条件,且左大括号必须和 if/else 在同一行。此外,Go 语言没有 whiledo while 循环,只有 for 循环。

if 7%2 == 0 {
	fmt.Println("7 is even")
} else {
	fmt.Println("7 is odd")
}

for i := 1; i <= 3; i++ {
	fmt.Println(i)
}

switch a {
case 1:
	fmt.Println("one")
case 2:
	fmt.Println("two")
default:
	fmt.Println("other")
}

数组和切片

数组是具有特定长度和类型的元素的集合,而切片是数组的一个引用,它是可以增长和缩小的。

var a [5]int
a[4] = 100
b := [5]int{1, 2, 3, 4, 5}

s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
s = append(s, "d", "e", "f")

Map

Map 是一种键值对的无序集合,它是 Go 语言中的一种哈希表结构。

m := make(map[string]int)
m["one"] = 1
m["two"] = 2

函数

Go 语言中的函数可以有多个返回值。这是 Go 语言的一大特色,使得函数可以同时返回结果和错误信息等。

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

func exists(m map[string]string, k string) (v string, ok bool) {
	v, ok = m[k]
	return v, ok
}

指针

Go 语言支持指针,允许在程序中通过引用直接访问和修改变量的值。

func add2ptr(n *int) {
	*n += 2
}