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
}
复制
其中,ch1和ch2是通道变量,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的动态类型选择执行不同的代码块。