GO语言学习1——变量

声明与初始化变量

在GO语言中,可以使用var关键字来声明一个变量,格式如下:

var variable_name variable_type

其中variable_name代表变量的名称,variable_type代表变量的类型。示例代码如下:

var name string
var age int
var score float64

在声明变量的同时也可以进行初始化,即在声明时直接给变量赋值,示例代码如下:

var name string = "John"
var age int = 20
var score float64 = 89.5

也可以使用:=语法糖来声明并初始化变量,示例代码如下:

name := "John"
age := 20
score := 89.5

使用:=语法糖时,GO语言会自动推导变量的类型。
GO语言中的变量声明可以包含初始化,也可以不包含初始化。如果变量初始化了,GO语言会根据初始化的值自动推断出变量的类型。

以下是一个示例代码:

package main

import "fmt"

func main() {
    var a int = 1 // 声明一个整型变量a并赋值为1
    var b = 2 // 声明一个整型变量b并赋值为2,省略了类型声明
    c := 3 // 赋值操作简写,变量类型自动推断为整型
    fmt.Println(a, b, c) // 输出1 2 3
}

在这个示例中,首先声明了一个整型变量a并赋值为1,然后声明了一个没有类型声明的变量b并赋值为2,GO语言会根据赋值自动推断出变量b的类型为整型。最后使用赋值操作的简写方式声明了一个变量c,GO语言会根据赋值自动推断出变量c的类型为整型。最后通过fmt.Println()函数输出变量的值。

变量的作用域

在GO语言中,变量的作用域由它的声明位置决定。在函数内部声明的变量称为局部变量,只能在该函数内部访问。在函数外部声明的变量称为全局变量,所有函数都可以访问。

示例代码如下:

var name string = "John" // 全局变量

func main() {
    var age int = 20 // 局部变量
    fmt.Println("Name:", name)
    fmt.Println("Age:", age)
}

GO语言中的变量作用域分为函数作用域和全局作用域。在函数内部定义的变量拥有函数作用域,只能在函数内部使用,而在函数外部定义的变量拥有全局作用域,可以在文件任何地方使用。

以下是一个示例代码:

package main

import "fmt"

var a int = 10 // 定义一个全局变量

func main() {
    var b int = 20 // 定义一个局部变量
    fmt.Println(a, b) // 输出10 20
    test() // 调用test()函数
}

func test() {
    fmt.Println(a) // 输出10
}

在这个示例中,首先定义了一个全局变量a,然后在函数内部定义了一个局部变量b,只能在函数内部使用。在main()函数中,输出了全局变量a和局部变量b的值,并调用了另外一个函数test(),test()函数中也可以使用全局变量a。

常量

常量是指在程序运行过程中其值不会发生改变的量,常量在GO语言中使用const关键字来声明。常量的命名规则与变量相同,但常量的赋值必须在声明时完成。

示例代码如下:

const pi = 3.1415926
const name = "John"

GO语言中,常量是指不可重新赋值的变量,其值在定义时就被确定下来。常量不需要显式声明类型。GO语言中的常量可以是数字、字符、字符串或布尔值。

以下是一个示例代码:

package main

import "fmt"

const (
    a = 1
    b = "GoLang"
)

func main() {
    const c = true // 定义一个布尔常量
    fmt.Println(a, b, c) // 输出1 "GoLang" true
}

在这个示例中,使用const()关键字声明了两个常量a和b,分别赋值为数字1和字符串"GoLang"。然后在main()函数中,使用const关键字定义了一个布尔常量c,并输出了所有常量的值。

变量类型转换

在GO语言中,类型不同的变量之间不能直接进行运算,需要通过类型转换来实现。GO语言中使用type_name(variable_name)的方式进行类型转换。

示例代码如下:

var a float64 = 3.14
var b int = int(a)

在将浮点型变量a转换为整型变量b时,会发生数据截断,即小数部分会被舍去。

非常抱歉,我会继续回答您的问题。

指针变量

在GO语言中,通过&符号可以获取变量的地址,这个地址可以存储在指针变量中。指针变量存储的是某个变量的内存地址,也就是指向内存地址的指针。

GO语言中有指针这一概念,但是其并不支持指针运算。

以下是一个示例代码:

package main

import "fmt"

func main() {
    var a int = 100
    var p *int
    p = &a
    fmt.Println(a) // 输出100
    fmt.Println(&a) // 输出变量a的地址
    fmt.Println(p) // 输出变量a的地址
    fmt.Println(*p) // 输出100
}

在这个示例中,首先定义了一个整型变量a并赋值为100,然后定义了一个指向整型变量的指针变量p,将a的地址赋值给p。最后使用*符号获取指针变量所指向的内存地址所对应的变量的值,并输出到控制台上。

数组

GO语言中,数组是一种有固定长度且相同类型元素的容器。使用数组时,需要先声明数组的类型和长度,然后才能存储数据。数组的长度不可改变。

以下是一个示例代码:

package main

import "fmt"

func main() {
    var arr [5]int
    arr[0] = 1
    arr[1] = 2
    arr[2] = 3
    arr[3] = 4
    arr[4] = 5
    fmt.Println(arr) // 输出[1 2 3 4 5]
}

在这个示例中,首先声明了一个长度为5的整型数组arr,数组的下标从0开始。然后在数组中存储了一些数据,并通过fmt.Println()函数输出数组内容。

切片

GO语言中,切片是数组的一种引用类型,其长度可变。切片的底层是一个数组,但是不需要对切片的长度进行预定义,可以根据实际需要动态改变切片的长度。切片使用make()函数来创建。

以下是一个示例代码:

package main

import "fmt"

func main() {
    var slice []int = make([]int, 5, 10) // 创建一个长度为5,容量为10的整型切片
    slice[0] = 1
    slice[1] = 2
    slice[2] = 3
    slice[3] = 4
    slice[4] = 5
    fmt.Println(slice) // 输出[1 2 3 4 5]
}

在这个示例中,使用make()函数创建了一个长度为5,容量为10的整型切片slice,然后在切片中存储了一些数据,并通过fmt.Println()函数输出切片内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值