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

148 阅读4分钟

Go语言基础语法

Go语言是一种静态类型、编译型、并发型的编程语言,由Google开发,旨在提高程序员的生产力。它的语法简洁易读,且具有垃圾回收功能,是一种非常实用的语言。

变量

在Go语言中,变量是用来存储数据的容器。变量有两种声明方式:显式声明和隐式声明。

显式声明

显式声明变量的语法如下:

var variableName type

复制

其中,variableName是变量名,type是变量的类型。例如:

var x int

复制

这条语句声明了一个名为x的整型变量。

隐式声明

隐式声明变量的语法如下:

variableName := value

复制

其中,variableName是变量名,value是变量的初始值。例如:

x := 10

复制

这条语句声明了一个名为x的整型变量,并将其初始化为10。

数据类型

Go语言支持多种数据类型,包括整型、浮点型、布尔型、字符串型等。

整型

整型分为有符号整型和无符号整型两种。有符号整型可以表示正数、负数和0,而无符号整型只能表示非负数。

Go语言支持以下几种整型:

  • int8:8位有符号整型
  • int16:16位有符号整型
  • int32:32位有符号整型
  • int64:64位有符号整型
  • uint8:8位无符号整型
  • uint16:16位无符号整型
  • uint32:32位无符号整型
  • uint64:64位无符号整型

浮点型

浮点型用于表示小数。Go语言支持两种浮点类型:

  • float32:32位浮点数
  • float64:64位浮点数

布尔型

布尔型用于表示真或假。它只有两个值:true和false。

字符串型

字符串型用于表示文本数据。字符串值必须用双引号括起来,例如:

s := "Hello, world!"

复制

控制结构

Go语言支持多种控制结构,包括条件语句、循环语句和选择语句等。

条件语句

条件语句用于根据条件执行不同的代码块。Go语言支持两种条件语句:if和switch。

if语句

if语句的语法如下:

if condition {
    // code to execute if condition is true
} else {
    // code to execute if condition is false
}

复制

其中,condition是一个布尔表达式。如果它的值为true,则执行if代码块中的代码;否则执行else代码块中的代码。

switch语句

switch语句的语法如下:

switch expression {
case value1:
    // code to execute if expression == value1
case value2:
    // code to execute if expression == value2
default:
    // code to execute if none of the above cases match
}

复制

其中,expression是一个表达式,它的值会与每个case后面的值进行比较。如果匹配,则执行该case代码块中的代码;如果都不匹配,则执行default代码块中的代码。

循环语句

循环语句用于重复执行一段代码。Go语言只支持一种循环结构:for循环。

for循环的语法如下:

for initialization; condition; post {
    // code to execute while condition is true
}

复制

其中,initialization是初始化语句,它在循环开始前执行一次;condition是一个布尔表达式,它在每次循环迭代前进行求值;post是后置语句,它在每次循环迭代后执行一次。

for循环会一直执行,直到condition的值为false为止。

选择语句

选择语句用于从多个代码块中选择一个执行。Go语言支持两种选择语句:select和type switch。

select语句

select语句用于在多个通道操作中选择一个执行。它的语法如下:

select {
case <-ch1:
    // code to execute if data is received from ch1
case ch2<-x:
    // code to execute if data is sent to ch2
default:
    // code to execute if none of the above cases are ready
}

复制

其中,ch1ch2是通道变量,x是要发送到通道的数据。select语句会阻塞,直到其中一个case可以执行为止。如果都不能执行,则执行default代码块中的代码。

type switch语句

type switch语句用于根据表达式的类型选择执行不同的代码块。它的语法如下:

switch x.(type) {
case int:
    // code to execute if x is of type int
case string:
    // code to execute if x is of type string
default:
    // code to execute if x is of none of the above types
}

复制

其中,x是一个接口变量。type switch语句会根据x的动态类型选择执行不同的代码块。