变量和常量整理

Golang
428
0
0
2022-07-14
标签   Golang基础

变量

声明变量

//一次性声明多个变量,int默认值
var n1, n2, n3 int

定义变量

一次定义一个
var num = 10
一次定义多个
var num, num1 = 10, 11

标准变量写法

在Go中变量声明的基本格式为:var 变量名 类型 = 值 ,例如:
// 声明一个字符串类型的变量name,值为 "董雷",是不是很像js,C语言类型在前面
var name string = "董雷"
// 声明一个整型类型的变量age,值为 18
var age int = 30

变量简写1

省略类型,格式为:var 变量名 = 值 ,这样彻底变为js了
var name = "董雷"
var age = 30
// 在给变量赋值时已知值的类型,所以Go编译器自动可以自动检测到类型,故可简化编写。

变量简写2,这种不能用作全局变量

省略var关键字,格式为:变量名 := 值 (推荐)
name := "董雷"
age := 30

分开声明和赋值

// 声明变量
var name string
// 给变量赋值
name = "董雷"
注意:如果变量只声明不赋值,Go内部其实会给变量默认设置值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 。

全局变量

// 声明全局变量
var country string = "中国"
// 或可使用 var country = "中国"
// 不可使用 country := "中国"
特别提醒:Go中的全局变量比较特殊,如果全局变量名首字母小写,则只能被当前包中的go文件使用,外部无法使用;如果首字母大写,则任意文件都使用全局变量。

局部变量

var name string = "董雷"
`var age = 30`
`name := "董雷"`

因式分解

全局和局部作用域都可以使用
传统写法
var name = "董雷"
var age = 30
var gender string
因式分解简写
var (
name = "董雷"
age = 30
gender string
)

常量

不可被修改的变量。
//常量定义且赋值`
const World string = "世界"
const age = 98
//多常量初始化
const x, y int = 1, 2

因式分解

// 常量因式分解
const (
v1 = 123
v2 = 456
pi = 9.9
)
//常量组
const (
e = 2.71828182845904523536028747135266249775724709
pi = 3.141592653589582097494459
b bool = true
)

汇总

package main
import (
"fmt"
"unsafe"
)
//常量定义且赋值
const World string = "世界"
//多常量初始化
const x, y int = 1, 2
//常量类型推断,字符串类型
const s1 = "Hello golang"
//常量组
const (
e = 2.71828182845904523536028747135266249775724709369995957496696763
pi = 3.14159265358979323846264338327950288419716939937510582097494459
b bool = true
)
//常量组,可以除了第一个外其他的常量右边的初始化表达式可以省略
//如果省略初始化表达式,默认使用前面常量的表达式
//与上一个常量相同
const (
c1=1
c2
c3
c4="c44444"
c5
)
/*
输出结果
1
1
1
c44444
c44444
*/
//常量也可以定义函数的返回值
const (
f1="abc" //长度为3的字符串类型
f2=len(f1)//返回长度的函数结果
f3=unsafe.Sizeof(f2)//返回f2所占用的内存大小
/*
输出结果
abc
3
8
*/
func main() {
fmt.Println(f1)
fmt.Println(f2)
fmt.Println(f3)
}

特殊变量

占位符 “_”

    _, name := Person(18, "好嗨哦")