2、GO语言入门-变量

本文介绍了Go语言中变量的四种声明方式:先定义再赋值、定义赋值一行完成、自动类型推断和简短声明,并展示了多变量声明和变量重复赋值的例子。强调了Go语言作为静态类型语言对变量类型的严格要求,以及变量使用后的内存管理由GC负责。同时,指出了变量命名的规则和未使用的变量会导致编译错误。
摘要由CSDN通过智能技术生成

1、含义

变量本质上就是一小块内存,用于存储数据,在程序的运行中数值是可以改变的

2、声明变量

1、方式一:先定义再赋值
// 1、先定义在赋值
var age int32
age = 12
fmt.Printf("%d \n", age)

var a int
a = 10
fmt.Printf("a的类型为:%T, 值为:%d\n", a, a)
2、方式二:定义赋值写一行
// 2、写在一行
var age2 int32 = 50
fmt.Printf("年龄为:%d \n", age2)

var b int = 20
fmt.Printf("b的类型为:%T, 值为:%d\n", b, b)
3、方式三:自动类型推断,go语言是一个强类型语言
// 3、自动类型推断
var age3 = 20
fmt.Printf("年龄为:%d \n", age3)

var c = "张三"
fmt.Printf("c的类型为:%T, 值为:%s\n", c, c)
4、方式四:简短声明
// 4、简明写法
name := "ly"
fmt.Printf("姓名为:%s \n", name)

d := 1.2
fmt.Printf("d的类型为:%T,值为:%f\n", d, d)

image

5、变量多声明
// 多变量定义
// 1、先定义再赋值
var x, y, z int
x = 10
y = 20
z = 30
fmt.Printf("x:%d \t y:%d \t z:%d \n", x, y, z)

// 2、先定义再赋值
var a1, a2, a3 = 1, 2, 3
fmt.Printf("a1:%d \t a2:%d \t a3:%d \n", a1, a2, a3)

// 3、定义一组值
var (
	name1 = "ly"
	age1  = 20
	sex   = "male"
)
// 修改上面的值
name1 = "zs"
fmt.Printf("name1:%s \t age1:%d \t sex:%s \n", name1, age1, sex)

image

6、变量重复赋值
var num int
num = 10
fmt.Printf("num的类型为:%T , 值为: %d , 地址为:%p \n", num, num, &num)

num = 200
fmt.Printf("num的类型为:%T , 值为: %d , 地址为:%p \n", num, num, &num)

image

变量使用完了,也不需要我们程序员去回收内存。Go语言和Java一样有GC垃圾回收机制

7、变量注意事项
  • 变量必须先定义才能使用
  • go语言是静态语言,要求变量的类型和赋值的类型必须一致。
  • 变量名不能冲突。(同一个作用于域内不能冲突)简短定义方式,左边的变量名至少有一个是新的
  • 简短定义方式,不能定义全局变量。
  • 变量的零值。也叫默认值。
    • 整型: 默认值是0
    • 浮点类型:默认是0
    • 字符串:默认值""
  • 变量定义了就要使用,否则无法通过编译。

如果在相同的代码块中,我们不可以再次对于相同名称的变量使用初始化声明,例如: a:= 20 就是不被允许的,编译器会提示错误no new variables on left sideof:=,但是a=20 是可以的,因为这是给相同的变量赋予一个新的值。
如果你在定义变量a之前使用它,则会得到编译错误 undefined:a。如果你声明了一个局部变量却没有在相同的代码块中使用它同样会得到编译错误,例如下面这个例子当中的变量 k:

// 错误示例
// num := 300 // No new variables on the left side of ':='

// n, m := 10, 20
// fmt.Printf("m:%d \n", m) // n declared but not used

// fmt.Printf("k:%d \n",k) // Unresolved reference 'k'
// var k = 10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值