【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语言常用转义字符


目录


变量声明方式

第一种

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

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

第二种

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

go 复制代码
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 关键字,而使用 := 这个符号。

go 复制代码
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

说明:

  • 这里的变量声明格式:

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


多变量声明

局部变量

go 复制代码
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

全局变量

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

go 复制代码
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
相关推荐
今天只学一颗糖8 小时前
Linux学习笔记--查询_唤醒方式读取输入数据
笔记·学习
235168 小时前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理
GIS学姐嘉欣8 小时前
【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(5):智慧矿产
学习·gis·智慧城市·webgis
折翼的恶魔8 小时前
前端学习之样式设计
前端·css·学习
Algebraaaaa9 小时前
Qt中的字符串宏 | 编译期检查和运行期检查 | Qt信号与槽connect写法
开发语言·c++·qt
Red Car9 小时前
javascript 性能优化实例一则
开发语言·javascript·ecmascript
友友马9 小时前
『 QT 』Hello World控件实现指南
开发语言·qt
一只学java的小汉堡9 小时前
Java 面试高频题:HashMap 与 ConcurrentHashMap 深度解析(含 JDK1.8 优化与线程安全原理)
java·开发语言·面试
huohaiyu10 小时前
Hashtable,HashMap,ConcurrentHashMap之间的区别
java·开发语言·多线程·哈希
Predestination王瀞潞14 小时前
IO操作(Num22)
开发语言·c++