跳到主要内容

4、变量

image-20230205143125773

变量

1、变量定义与使用

🍀 语法

定义变量(使用默认值)
var a int //变量有默认值:例如整数是0(int类型),字符串为空,
var b string

在一行定义相同类型的变量
var a, b int = 1, 2

在一行定义不同类型的变量(省略变量类型)
var a, b, c = 1, "go", true
var a = 1

使用简短声明方式(声明并赋值,省略var关键字)
a, b, c := 1, "go", true //:=只能在函数内使用,不能用在函数外,go语言这种方式还是挺受欢迎的!
a := 520

var ( //在全局定义变量时,一般推荐使用这种方式!
a = 1
b = "go"
c = true
)

说明:

%d 整数
%s 字符串
%f 打印浮点型
%q 加上引号
%T 打印变量类型

Println 换行
Print 不换行

🍀 例子:变量是有默认值的

image-20230205143135881

image-20230205143143691

package main

import "fmt"

var c1, c2 = 6, "golang"

// d1, d2 := 6, "golang"
var (
d1 = 7
d2 = "go"
)

func varInitValue() {
var a, b int = 3, 4
fmt.Println(a, b)
var s string = "abcd"
fmt.Println(s)

var s1, s2, s3 = 5, "hello", true
fmt.Println(s1, s2, s3)

s4, s5, s6 := 520, "xyy", false
fmt.Println(s4, s5, s6)
}

func main() {
var a int
var b string
fmt.Println(a, b)
fmt.Printf("%d %s\n", a, b)
fmt.Printf("%d %q\n", a, b)

varInitValue()

fmt.Println(c1, c2)
fmt.Println(d1, d2)
}

⚠️ 在go语言里,变量定义了,必须要使用,否则会报错!

image-20230205143152292

2、系统变量类型

🍀 语法

  • bool
  • string
  • (u)int、(u)int8、(u)int16、(u)int32、(u)int64、uintptr
  • byte(等价于uint8)、rune(等价于int32 unicode)
  • float32、float64、complex64、complex128
//说明:
1.有符合整型,无符号整型(前面会加上一个u)
2.(u)int会根据自己机器平台来决定其长度的,例如32位系统,其就是(u)int3264位系统,其就是(u)int64
3.Go语言不允许隐式类型转换,只能强制转换;
4.Go语言中不支持指针运算。(uintptr指针类型(go语言里,指针是非常简单的,区别于其他编程语言,go里不支持指针的运算的!)

🍀 例子

package main

import (
"fmt"
"math"
"runtime"
"strconv"
)

func main() {
var a = 1
var b int32
b = int32(a)
fmt.Printf("%T %T\n", a, b)

cpuArch := runtime.GOARCH //打印本系统的cpu架构
intSize := strconv.IntSize //打印本系统字节大小
fmt.Println(cpuArch, intSize)

var f1 float32
var f2 float64
fmt.Printf("%f %f\n", f1, f2)

var bt byte = 2
var ru rune = '彦'
fmt.Printf("%T %T\n", bt, ru)

var a1, a2 = 3, 4
var c int
temp := a1*a1 + a2*a2
fmt.Printf("%T\n", temp)
c = int(math.Sqrt(float64(temp))) //math.Sqrt()方法:求平方
fmt.Printf("%T %d\n", c, c)

p := 1
ptr := &p
ptrptr := &ptr
fmt.Printf("%T %T %T", p, ptr, ptrptr)
}

image-20230205143209156

image-20230205143216352