Go语言声明变量

发布于:2025-08-04 ⋅ 阅读:(12) ⋅ 点赞:(0)

目录

1、var声明变量

重新赋值

2、一次声明多个变量

3、短变量声明法

4、匿名变量


1、var声明变量

        var声明变量的方式是:var 变量名称 类型。

package main

import "fmt"

func main() {
	/*
		1、var 声明变量
		 var 变量名称 类型

		 变量名称的命名规则:
		 首字符必须是字母或下划线
		 剩余字符可以是字母、数字或下划线
	*/
	var userName string = "张三"

	// 2、声明变量时,可以省略类型,编译器会根据初始值自动推导出类型
	var age = 20
	fmt.Printf("name: %s, age: %d", userName, age)
}

重新赋值

        Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。

	// 错误写法
	var nameName = "李四"
	var nameName = "王五"
	fmt.Println(nameName)

        这样就会报错,不能给同一个变量重复声明,当我们需要为一个变量重新赋值时,做法如下:

	var nameName = "李四"
	nameName = "王五"
	fmt.Println(nameName)

         这样就可以重新赋值了,打印结果就是王五。

2、一次声明多个变量

第一种声明方式:var 变量名称,变量名称,... 类型。

	// var 变量名称,变量名称,... 类型
	var a1, a2 string
	a1 = "hello"
	a2 = "world"
	fmt.Println(a1, a2)

        这种方式只针对同一类型的变量,如果类型不同就会报错。

        当需要声明多个不同类型的变量时,上面这种方式就不可取了,就需要换一种声明方式,方式如下:

	/*
		var (
			变量名称 类型
			变量名称 类型
			...)
	*/
	var (
		name string
		age  int
	)
	name = "李四"
	age = 20
	fmt.Println(name, age)

        将要声明的变量用括号包起来,在变量名后面指定它的类型,一行只能声明一个变量。

        也可以在声明时就直接赋值,代码如下:

	var (
		name = "张三"
		age  = 20
	)
	fmt.Println(name, age)

3、短变量声明法

        在函数内部,可以使用更简略的 := 方式声明并初始化变量。

	// 短变量声明法
	name := "张三"
	fmt.Println(name)

	// 使用短变量一次声明多个变量,并初始化变量
	a, b, c := 10, 20, "C"
	fmt.Println(a, b, c)

        但是要注意的是,短变量只能用于声明局部变量,不能用于全局变量的声明

package main

import "fmt"

var nameName = "张三"

func main() {
	age := 20
	fmt.Printf("name: %s, age: %d", nameName, age)
}

4、匿名变量

        在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量,用一个下划线 _ 表示。

func getUserInfo() (string, int) {
	return "张三", 20
}

        就比如我重新声明了一个函数,它返回两个数据,类型分别是string和int

	name, age := getUserInfo()
	fmt.Println(name, age)

        在main函数中声明两个变量,将getUserInfo函数中返回的数据赋值给这两个变量并打印出来。

        如果出现一种情况,就是我现在只希望获取getUserInfo函数中返回的第一个数据,第二个不需要,这样就不能声明多个变量,因为我们声明的变量必须要使用,不然会报错,因此就需要使用到匿名变量。代码如下:

	_, age := getUserInfo()
	fmt.Println(age)

        这样数据就能正常打印出来,并且不会报错。

        匿名变量不会占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明


网站公告

今日签到

点亮在社区的每一天
去签到