1.Go语言干货—变量常量

25 篇文章 0 订阅
7 篇文章 0 订阅

1.标识符与关键字

1.1 标识符

  1. 标识符就是程序员定义的具有特殊含义的词。(变量名、常量名、函数名等)
  2. Go语言中标识符由数字字母下划线构成。

1.2 关键字

  1. Go语言中有25个关键字
	break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var
  1. Go语言中有37个保留字
Constants:    true  false  iota  nil
Types:    int  int8  int16  int32  int64  
               uint  uint8  uint16  uint32  uint64  uintptr
               float32  float64  complex128  complex64
               bool  byte  rune  string  error
Functions:   make  len  cap  new  append  copy  close  delete
                complex  real  imag
                panic  recover```

2.变量

  1. 思考为什么需要变量?
  2. 思考变量为什么需要定义类型?

2.1 变量声明

  1. Go语言中变量需要声明后才能使用
  2. 同一作用域内不支持重复声明变量
  3. Go语言中函数内声明的变量必须要使用
//Go语言变量声明格式
var 变量名 变量类型

var name string

// 批量声明变量
var (
	name string
	age int
	isBoy bool
)

2.2 变量的初始化

Go语言在声明变量的时候,会自动给变量对应的内存区域进行初始化操作。每个被声明的变量都会被初始化一个默认的值

  1. 整形与浮点型变量默认值为0
  2. 字符串变量的默认值为空字符串
  3. 布尔类型变量默认为false
  4. 切片、函数、指针变量的默认值为nil
2.2.1 标准声明
// 我们在声明变量的时候也可以初始化值
var 变量名 类型 = 初始化值

var name string = "spl"
var age int = 18
2.2.2 类型推导(声明变量的时候省略类型)
var name = "spl"
var age = 18

// 也可以同时声明并初始化多个值
var name ,age = 'spl',18
2.2.3 短变量声明(必须在函数内部)
package main
import "fmt"

func main(){
	name := "spl"
	age := 18
	fmt.Println(name,age)
}
2.2.4 匿名变量

在进行变量赋值操作时,遇到不需要的值,将这个值赋值给_

  1. 匿名变量不会被分配内存
  2. 匿名变量可以进行重复声明
func getMsg()(int,string){
	return 18,"spl"
}

func main(){
	a,_ := getMsg() // 获取年龄,舍弃姓名
	_,b := getMsg() // 舍弃年龄,获取姓名
	...
}

2.3 注意事项

  1. 函数外的每个语句都需要一关键字开始(var,const,func等等)
  2. := 只能在函数内部使用
  3. _用于占位符,表示忽略某值

3.常量

  1. 恒定不变的量,程序运行周期不会改变的值。
  2. 关键字const

声明与初始化参考变量

3.1 常量注意点

const (
    n1 = 100
    n2 
    n3
)
// n1,n2,n3 的值都是100

4. iota

  1. iotaGo语言的常量计数器,只能在常量表达式中使用
  2. iota 在const关键字出现的时候被重置为0。const中酶新增一行常量声明将iota计数一次。
const(
	n1 = iota // 0
	n2		  // 1
	n3		  // 2
	n4		  // 3
)

4.1 iota面试考点

  1. 使用_ 跳过某个值
const (
	n1 = iota // 0
	n2		  // 1
	_
	n4		  // 3
)
  1. iota 声明中间插队
const(
	n1 = iota	// 0
	n2 = 100	// 100
	n3 = iota	// 2
	n4			// 3
)
  1. 定义数量级
const (
	_ = iota
	KB = 1 << (10 * iota)
	MB = 1 << (10 * iota)
	GB = 1 << (10 * iota)
	TB = 1 << (10 * iota)
	PB = 1 << (10 * iota)
)
  1. 多个iota定义在同一行
const (
	a,b = iota+1,iota+2 // 1,2
	c,d					// 2,3
	e,f					// 3,4
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值