读书笔记之Go变量与常量

变量

声明变量

只记:(只有两种声明:普通声明、初始化声明)

  1. var 到处行
  2. 数据类型 || 初始化
  3. := 只能在函数内
  4. Go中数据类型在变量名的后面
package main //程序入口包
import (
	"fmt"
	"net"
)

	/**
		变量
	 */

	/*
		一、声明变量
		未初始化会有默认值
	 */
	//	1.标准格式: var 变量名 变量类型
	var x int
	//	2.批量格式: (注意:var(...)是小括号!!!)
	var (
		a int           //默认:0 		整数类型
		b string        //默认:空 		字符串类型
		c []float32     //默认:[] 		32位浮点切片类型
		d func() bool   //默认:nil 		将函数以变量的形式保存(返回值为布尔类型的函数) 一般用于回调函数
		e struct{       //默认:{0} 		结构体变量(类似Java中自定义的对象)
			x int
		}
	)

	/*
		二、声明初始化变量
	 */
	//	1.标准格式: var 变量名 类型 = 表达式
	var hp int = 100
	//	2.由于编译器可以根据赋值推导出变量类型 所以: var 变量名 = 表达式
	//  注意:变量会推导为默认类型 若为非默认类型则需要声明
	// 		如:var x = 0.17 为了保证精确度编译器会推导为float64
	//		若只想要float32则需要声明: var x float32 = 0.17
	var attack = 40

// 程序的入口函数(整个项目最多有一个 用go写插件时可以没有)
func main(){
	//	3.短变量声明初始化: 变量名 := 表达式
	//	注意:只能在函数中声明 且函数中声明的变量必须被使用到!!!
	age := 10
	conn,err := net.Dial("tcp","127.0.0.1:8080")
	fmt.Println(age)
	fmt.Printf("conn=%v;err=%v",conn,err)
}

多重赋值

不用有中间值了!!!

	a := 100
	b := 200
	a,b = b,a

匿名变量 _

匿名变量不会被分配内存
获取不需要的返回值:

只想要err,不想用conn
_,err := net.Dial("tcp","127.0.0.1:8080")

常量

编译时对常量表达式计算求值,并在运行期间恒定不变!

常量声明

关键字const
变量初始化必须赋值
在这里插入图片描述

iota枚举

枚举时很有用!

注意点:

  1. iota在const出现时被重置为0
  2. const中每新增一行常量声明,iota递增一
1.枚举声明
const (
		n1 = iota //0
		n2        //1
		n3        //2
		n4        //3
	)

2.使用_跳过某些值
const (
		n1 = iota //0
		n2        //1
		_
		n4        //3
	)
	
3.iota声明中间插队
const (
		n1 = iota //0
		n2 = 100  //100
		n3 = iota //2
		n4        //3
	)
	const n5 = iota //0

4.多个iota定义在一行
const (
		a, b = iota + 1, iota + 2 //1,2
		c, d                      //2,3
		e, f                      //3,4
	)

定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)

const (
		_  = iota
		KB = 1 << (10 * iota)
		MB = 1 << (10 * iota)
		GB = 1 << (10 * iota)
		TB = 1 << (10 * iota)
		PB = 1 << (10 * iota)
	)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值