Go语言的基础语法以及变量和常量

目录

基础语法

行分隔符

注释

标识符

变量

声明

赋值

作用域

常量

声明

iota


基础语法

行分隔符

在Go程序中,一般一行就是一个语句,不像Java等可以在一行写多个语句一样,而且最后也不需要用";"来结尾。

例如,下列写法就是一个Go语句

fmt.Println("HelloWorld")

注释

注释也分为单行注释和多行注释,单行注释以双斜线"//"开头,例如//单行注释

多行注释通常以"/*"开头,以"*/"结尾,例如:

/*
    多行注释
    多行注释
    多行注释
*/

标识符

标识符通常用来对变量、类型等程序实体进行命名。一个标识符实际上就是一个或者多个字母、数字、下划线组成的字符串序列,并且要求第一个字符不能是数字或者GO语言的关键字。

变量

Go语言中的变量可以分为以下几类:

数值型变量:包括整型(int、int8、int16、int32、int64)、浮点型(float32、float64)和复数型(complex64、complex128)。

字符串型变量:用于存储字符串类型的数据,使用 string 类型。

布尔型变量:用于存储布尔类型的数据,只有 true 和 false 两个值,使用 bool 类型。

指针型变量:用于存储内存地址,使用 *data_type 类型。

结构体变量:用于存储多个变量的组合,使用 struct 类型。

接口型变量:用于存储实现了某个接口的类型,使用 interface 类型。

函数变量:用于存储函数,使用 func 类型。

声明

Go语言是一种静态强类型语言,所以变量有明确的类型。变量的声明一般形式是使用var关键字,形式如下:

var age int

其中,var是变量声明的关键字,age是变量名,int是变量的类型。

当一个变量被声明后,如果不对其进行赋值,则系统会自动赋予它该类型的0值或者空值。例如int类型默认为0、float类型默认为0.0、bool类型默认为false,string类型默认为空字符串,指针类型默认为nil。

(1)标准声明

变量的标准声明格式为

var 变量名 变量类型

变量声明以关键字var开头,中间为变量名,最后为变量类型,无需分号结尾

(2)批量声明

批量声明是一个更加高效的变量声明方法,即使用关键字var和括号将一组变量放在一起。格式如下:

var {
    name string
    age int
    gender string
}

(3)简短声明

除了var关键字以外,还可以使用简短的变量定义和初始化。格式如下:

变量名 := 表达式

当使用简短声明时有三点需要注意:

1)只能用来定义变量

2)不能提供数据类型

3)只能在函数体内部使用,不能用来定义全局变量

赋值

(1)给一个变量赋值

var name string = "zxm"

这里需要说明,变量类型string一般可以省略不写,因为系统会自动进行判断变量类型

(2)给多个变量赋值

var {
    name string = "zxm"
    age int = 18
    gender string = "男"
}

这里的变量类型也可以省略。

作用域

(1)局部变量

表示在函数体内声明的变量称为局部变量,它的作用域只在函数体内,它的参数的返回值的变量也是局部变量。

(2)全局变量

表示在函数体外声明的变量称为全局变量,它的作用域可以在整个包内使用,也可以在任何一个函数中使用。

常量

Go语言中的常量可以分为以下几类:

数值型常量:与数值型变量类似,包括整型、浮点型和复数型常量。

字符串型常量:与字符串型变量类似,用于存储字符串类型的数据。

布尔型常量:与布尔型变量类似,用于存储布尔类型的数据。

iota 常量:特殊的常量类型,用于枚举,从 0 开始自增。

声明

常量是一种特殊类型的变量,其值在定义后不能被修改。在 Golang 中,常量可以使用 const 关键字进行定义

(1)标准声明

常量的标准声明格式为

const 常量名 = 常量值

(2)批量声明

const {
    a = 3.14
    b
    c
}

这里将常量a赋值3.14,b和c没有进行赋值,就会自动按照上面语句" a = 3.14"的值进行赋值,所以b和c也等于3.14

iota

常量声明可以使用常量生成器iota进行初始化。iota用于生成一组以相似规则初始化的常量,但是不需要每行都写一遍初始化表达式。在一个const声明语句中,在第一个声明的常量所在的行,iota会被置为0,然后每有一个常量声明的行iota的值就加1。

猜你喜欢

转载自blog.csdn.net/weixin_71646897/article/details/130497756
今日推荐