【Go】变量与数据类型

变量

变量表示内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型)。

变量声明的方式

  1. 指定变量类型。声明后若不赋值,则使用指定数据类型的默认值
package main

import "fmt"

func main() {
   
	var num int
	fmt.Println("num =", num)
}

结果:num = 0
int数据类型的默认值是0,其他的稍后介绍

  1. 根据初值自行判定变量类型(类型推导)
package main

import "fmt"

func main() {
   
	var num = 10.1
	fmt.Println("num =", num)
}

结果:num = 10.1

  1. 省略var关键字,用:=声明并赋初值
package main

import "fmt"

func main() {
   
	num := 10
	fmt.Println("num =", num)
}

结果:num = 10

  1. 局部多变量声明
package main

import "fmt"

func main() {
   
	// 一次声明多个变量
	var n1, n2, n3 int
	fmt.Println("n1 =", n1, "n2 =", n2, "n3 =", n3)

	// 一次声明多个变量并赋初值
	var a, name, b = 100, "张三", 300
	fmt.Println("a =", a, "name =", name, "b =", b)

	// 简写
	i, j := 10, 20
	fmt.Println("i =", i, "j =", j)
}

结果:

n1 = 0 n2 = 0 n3 = 0
a = 100 name = 张三 b = 300
i = 10 j = 20
  1. 全局多变量声明
package main

import "fmt"

// 一次声明多个全局变量
var (
	a    = 100
	b    = 200
	name = "李四"
)

func main() {
   
	fmt.Println("a =", a, "b =", b, "name =", name)
}

结果:a = 100 b = 200 name = 李四

变量使用的注意事项

  • 变量的值可以在同一类型范围内不断变化
  • 变量在同一作用域内不能重名
  • 变量的三要素:变量名、变量值、数据类型
  • Go中的变量如果没有赋初值,编译器会使用默认值。比如int型默认值为0string型默认值为空串

声明全局变量的坑

我们可以在函数内部使用变量声明的简写方式,比如a := 10,但这条语句不能写在函数外部,也就是全局,因为这条语句相当于两条语句:var a inta = 10,而在全局中是不允许有赋值语句的。

数据类型

Go的数据类型分为基本数据类型派生/复杂数据类型

  • 基本数据类型:
    • bool
    • string
    • intint8int16int32int64
    • uintuint8uint16uint32uint64uintptr
    • byteuint8的别名)
    • runeint32的别名,表示一个Unicode码点)
    • float32float64
    • complex64complex128
  • 派生/复杂数据类型:
    • 指针pointer
    • 数组array
    • 结构体struct
    • 管道channel
    • 函数function
    • 切片slice
    • 接口interface
    • map

整型类型的说明

类型 有无符号 占用存储空间 表示范围 备注
int8 1字节 -128 ~ 127
int16 2字节 -215 ~ 215-1
int32 4字节 -231 ~ 231-1
int64 8字节 -263 ~ 263-1
uint8 1字节 0 ~ 255
uint16 2字节 0 ~ 216-1
uint32 4字节 0 ~ 232-1
uint64 8字节 0 ~ 264-1
int 32位系统占4个字节,64位系统占8个字节 -231 ~ 231-1,-263 ~ 263-1 默认
uint 32位系统占4个字节,64位系统占8个字节 0 ~ 232-1,0 ~ 264-1
rune int32一样 -231 ~ 231-1 等价int32,表示一个Unicode
byte<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值