【一Go到底】第三天---变量的使用

167 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

定义变量

变量三要素 : 变量名 数据类型 变量值 变量在同一作用域内不能重名 不赋值,就默认使用初始值

先定义,再赋值

package main

import "fmt"

func main(){
    //先定义
    var a int
    //赋值
    a = 10
    //打印输出变量
    fmt.Println("a value: ",a)
}

image.png

声明直接赋值(自行判断变量类型)

Print系列函数会将内容输出到系统的标准输出,区别在于Print函数直接输出内容,Printf函数支持格式化输出字符串,Println函数会在输出内容的结尾添加一个换行符。

package main

import"fmt"
        “reflect" // 后面调用TypeOf查看变量类型
        )

func main(){
        // 声明直接赋值
	var num1 = 10
	var num2 = 11.11
	var str1 = "Hello,go"
        //使用Printf进行打印
	fmt.Printf("The num1 value:%v , type:%s \n", num1, reflect.TypeOf(num1))
	fmt.Printf("The num2 value:%v , type:%s \n", num2, reflect.TypeOf(num2))
	fmt.Printf("The str1 value:%v , type:%s ", str1, reflect.TypeOf(str1))
}

image.png

省略 var,使用:=声明赋值

注意:这种声明方法只能作用于函数体内

package main

import (
	"fmt"
	"reflect"
)

func main() {
	//不使用var关键字,直接使用 := 来声明
	//注意: 左侧的变量必须是没有声明过的
	num3 := 10010
	str2 := "hi,go"
	fmt.Printf("The num3 value:%v ,type:%s \n", num3, reflect.TypeOf(num3))
	fmt.Printf("The str2 value:%v ,type:%s ", str2, reflect.TypeOf(str2))


}

image.png

多变量声明

package main

import (
	"fmt"
)

func main() {
	//先定义,再赋值
	var i, j, k int
	i, j, k = 1, 2, 3

	//自行判断变量类型
	var m, n, o = 1, 10.1, "100.111"

	//类型推导
	a, b, c := 10, 20.20, "三零"

	fmt.Printf("The value of i:%v, j:%v, k:%v\n", i, j, k)
	fmt.Printf("The value of m:%v, n:%v, o:%v\n", m, n, o)
	fmt.Printf("The value of a:%v, b:%v, c:%v", a, b, c)
}

image.png