变量和常量整理

Golang
369
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, "好嗨哦")