开发者社区 问答 正文

go程序中定义了int变量,取值有问题

代码如下

package main

import "fmt"

var c, python, java bool

func main() {
	var i int
	fmt.Println(i, c, python, java)
}

运行结果

0 false false false

定义i的变量类型为int,但是并没有赋值,打印为什么是0

展开
收起
道月芬1 2021-10-21 14:12:29 453 分享 版权
阿里云 AI 助理回答

在Go语言中,当声明一个变量但没有明确赋予初始值时,该变量会自动获得其类型的零值。对于基本数据类型而言:

  • int 类型的零值是 0
  • bool 类型的零值是 false
  • string 类型的零值是 ""(空字符串)
  • 指针类型的零值是 nil

在你的代码中: - var i int 声明了一个整型变量 i,由于没有赋值,它默认被初始化为 int 类型的零值,即 0。 - var c, python, java bool 声明了三个布尔型变量 c, python, java,同样因为没有赋值,它们都被初始化为 bool 类型的零值,即 false。

因此,当你打印这些变量时,输出结果是 0 false false false,这完全符合Go语言对未初始化基本类型变量的处理规则。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: