【golang学习之旅】Go中的变量(1)

系列文章

【golang学习之旅】使用VScode安装配置Go开发环境
【golang学习之旅】报错:a declared but not used
【golang学习之旅】Go 的基本数据类型
【golang学习之旅】深入理解字符串string数据类型
【golang学习之旅】go mod tidy
【golang学习之旅】记录一次 panic case : reflect: reflect.Value.SetInt using unaddressable value
【golang学习之旅】记录一次 error case : full error output: cc1: error: unrecognized command line option
【golang学习之旅】Go程序快速开始 & Go程序开发的基本注意事项
【golang学习之旅】Go语言常用转义字符



变量声明方式

第一种

指定变量类型,声明后若不赋值则使用默认值。

package main

import "fmt"

func main() {
    // 不赋值
	var var1 int
	fmt.Println("var1:", var1)
    // 赋值
    var var2 int = 10
	fmt.Println("var2:", var2)
}

输出:
var1: 0
var2: 10

说明:

  • 这里的变量声明格式:

    • var 变量名 变量类型
    • var 变量名 变量类型 = 初值
  • var 这个关键字用来表示后面跟着的是变量

  • int 类型变量的默认值是0

第二种

不直接写出类型,但需写出变量值,编译器会根据值自动判定变量类型(类型推导)。

package main

import (
	"fmt"
	"reflect"
)

func main() {
	var num = 10
	fmt.Println("num = ", num)
	fmt.Println("num 的类型是", reflect.TypeOf(num))

	var str = "hello world!"
	fmt.Println("str = ", str)
	fmt.Println("str 的类型是", reflect.TypeOf(str))
}

输出:
num =  10
num 的类型是 int
str =  hello world!
str 的类型是 string

说明:

  • 这里的变量声明格式:

    • var 变量名 = 初值
  • reflect包下的TypeOf函数用于获取变量的类型信息

第三种

省略 var 关键字,而使用 := 这个符号。

package main

import (
	"fmt"
	"reflect"
)

func main() {
	num := 10.0
	fmt.Println("num = ", num)
	fmt.Println("num 的类型是", reflect.TypeOf(num))

	str := "hello world!"
	fmt.Println("str = ", str)
	fmt.Println("str 的类型是", reflect.TypeOf(str))
}

输出:
num =  10
num 的类型是 float64
str =  hello world!
str 的类型是 string

说明:

  • 这里的变量声明格式:

    • 变量名 := 初值
  • :=左侧的变量必须是没有声明过的


多变量声明

局部变量

package main

import "fmt"

func main() {
	// 多变量类型相同
	var n1, n2, n3 int
	fmt.Println("n1 = ", n1, "n2 = ", n2, "n3 = ", n3)
	// 多变量类型不同--使用var声明
	var n4, str1, f1 = 1, "hello", 3.4
	fmt.Println("n4 = ", n4, "str1 = ", str1, "f1 = ", f1)
	// 多变量类型不同--使用 := 声明
	n5, str2 := 10, "world"
	fmt.Println("n5 = ", n5, "str2 = ", str2)
}

输出:
n1 =  0 n2 =  0 n3 =  0
n4 =  1 str1 =  hello f1 =  3.4
n5 =  10 str2 =  world

全局变量

可以使用小括号()来一次性声明全局变量

package main

import "fmt"

var (
	n1  = 10
	n2  = 20
	str = "hello"
)

func main() {
	fmt.Println("n1:", n1, "n2:", n2, "str:", str)
}

输出:
n1: 10 n2: 20 str: hello
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值