【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
相关推荐
运器12332 分钟前
【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
开发语言·人工智能·python·算法·ai·散列表·ai编程
whoarethenext1 小时前
使用 C++ 实现 MFCC 特征提取与说话人识别系统
开发语言·c++·语音识别·mfcc
ITfeib1 小时前
Flutter
开发语言·javascript·flutter
strongwyy1 小时前
蓝牙墨水屏上位机学习(2)
学习
九皇叔叔1 小时前
(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别
学习
想躺平的咸鱼干2 小时前
Volatile解决指令重排和单例模式
java·开发语言·单例模式·线程·并发编程
Owen_Q2 小时前
Denso Create Programming Contest 2025(AtCoder Beginner Contest 413)
开发语言·算法·职场和发展
·云扬·2 小时前
【Java源码阅读系列37】深度解读Java BufferedReader 源码
java·开发语言
liulilittle3 小时前
C++ i386/AMD64平台汇编指令对齐长度获取实现
c语言·开发语言·汇编·c++
Thomas_YXQ3 小时前
Unity URP法线贴图实现教程
开发语言·unity·性能优化·游戏引擎·unity3d·贴图·单一职责原则