Golang

简介

Go语言也称为 Golang,是由 Google 公司开发的一种静态强类型、编译型、并
发型、并具有垃圾回收功能的编程语言

Go基本语法

变量的声明

Go语言是静态类型语言,因此变量是有明确类型的,编译器也会检查变量类型的
正确性。在数学概念中,变量表示没有固定值且可改变的数。但从计算机系统实
现角度来看,变量是一段或多段用来存储数据的内存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// var 是声明变量的关键字,name 是变量名,type 是变量的类型
var a, b *int
// 批量格式
var (
a int
b string
c []float32
d func() bool
e struct {
x int
}
)
// 简短格式
// 名字 := 表达式
// 定义变量,同时显式初始化
// 不能提供数据类型
// 只能用在函数内部
func main() {
x:=100
a,s:=1, "abc"
}

变量的初始化

1
2
3
4
5
//var 变量名 类型 = 表达式
var hp int = 100
var hp = 100
//短变量声明并初始化,左值变量必须是没有定义过的变量
hp := 100

多个变量同时赋值

1
2
3
4
var a int = 100
var b int = 200
b, a = a, b
fmt.Println(a, b)

匿名变量

匿名变量的特点是一个下画线“_”,“_”本身就是一个特殊的标识符,被称为空白
标识符。它可以像其他标识符那样用于变量的声明或赋值,但任何赋给这个标识
符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个
标识符作为变量对其它变量进行赋值或运算

1
2
3
4
5
6
7
8
func GetData() (int, int) {
return 100, 200
}
func main(){
a, _ := GetData()
_, b := GetData()
fmt.Println(a, b)
}

变量作用域

  1. 局部变量
    在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,函数的参数
    和返回值变量都属于局部变量
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package main
    import (
    "fmt"
    )
    func main() {
    //声明局部变量 a 和 b 并赋值
    var a int = 3
    var b int = 4
    //声明局部变量 c 并计算 a 和 b 的和
    c := a + b
    fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
    }
  2. 全局变量
    在函数体外声明的变量称之为全局变量,全局变量只需要在一个源文件中定义,就
    可以在所有源文件中使用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package main
    import "fmt"
    //声明全局变量
    var c int
    func main() {
    //声明局部变量
    var a, b int
    //初始化参数
    a = 3
    b = 4
    c = a + b
    fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
    }
  3. 形式参数
    在定义函数时函数名后面括号中的变量叫做形式参数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    package main
    import (
    "fmt"
    )
    //全局变量 a
    var a int = 13
    func main() {
    //局部变量 a 和 b
    var a int = 3
    var b int = 4
    c := sum(a, b)
    }
    func sum(a, b int) int {
    num := a + b
    return num
    }
Author: 高明
Link: https://skysea-gaoming.github.io/2021/04/18/Golang/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.