go的常量与变量

一、常量

1.1 定义

常量使用关键字const 定义,用于存储不会变化的数据
定义方法 const identifier [type] = value

package main

// 常量定义
const P float64 = 3.14159

// 简短而优雅的写法
const(
	CODE_STATUS = 100
	START_NUM int = 1
	START_NUM1   // 自动 延用上一行的数据值 1,
)
func main(){
	
}

1.2 常量定义的注意事项

1、常量名 最好大写,已区分于变量
2、常量定义后是可以不使用的
3、常量的定义可以不写 数据类型和变量一样,因为go编辑器会自动识别
4、常量的数据必须是不可变的,也就是必须是确定下来的数据
    不规范的列子:
        const NUM int = getNum() // getNum 函数的不获取是不确定的,所以不行
5、在一个const 内,如果一行没有赋值,则会默认赋值上一行的数据直至有值可以赋值

1.3 关于iota 的使用

用法 const identifier = iota
iota 就是int 类型

package main

const(
	A int = iota  // 0
	B			  // 1
	C			  // 2
)

const(
	D = iota	 // 0
	E ="jmz"     // jmz
	F 			 // jmz
	G = iota	 // 3
	H = iota * 2 // 8
	I			 // 10
	J = iota	 // 6
	K			 // 7
)
func main(){
}

1.4 iota 的讲解

1、iota 每一次开始值 都为0
2、iota 每遇到const ,都会从0开始
3、iota 在一个const内是每一行都会自动+1

二、变量

2.1 变量声明

var identifiter [type]

  • 第一种 声明后再赋值
    var v_name v_type
    v_name = value
  • 第二种 声明的过程中赋值
var v_name v_type = value
  • 第三种 简单声明
v_name := value
  • 第四种 优雅的声明方式
var (
    v_name1 v_type = value
    v_name2 = value2
    v_name3 v_type3
)

2.2 多变量声明

var vname1,vname2,vname3 int = 1,2,3  // 多变量声明指明了类型所以后面都必须是该类型
var v1,v2,v3 = 23,"aaa","obj" // 多变量声明,没有指明类型,go编辑器会自动添加变量类型的
a1,a2,a3,a4 := 1,2,"3",'3' 多变量简短声明

2.3 声明与赋值

1、关于值类型变量的声明,go编辑器会自动赋予该变量初始值
       int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil,引用类型变量为nil
       记住所有的内存在 Go 中都是经过初始化的。

2、变量尽量遵循驼峰命名法
    如:userName,startDate
3、变量声明后不能再次声明,否则会报错
    简短声明中 只要有一个未声明,就不会报错
        如:
            num := 0
            num,ok := iName.(int) // 这是断言,返回两个值

三、值类型与引用类型

在go 中有两个数据类型 值类型和引用类型,我数据类型中,具体讲解

&变量 可以获取变量的地址
    如:
        num := 12
        println(&num)

值类型:
    1、变量 直接指向 内存中的值
    2、将一个变量 赋值给 另一个变量,实际是对内存中的值进行了拷贝
    3、值类型的变量的值存储在栈中
引用类型:
    1、引用类型的变量存储的是内存值所在的地址(数字),内存地址中第一个字所在的位置
    2、将一个引用类型变量 赋值给 另一个引用类型变量,实际只是引用(地址)的复制
     

那些事值类型,那些事引用类型,请看下一章

如果喜欢看小说,请到183小说网

posted @ 2019-03-25 21:48  xiaobaiskill  阅读(212)  评论(0编辑  收藏  举报