一、常量

1.1 定义

常量使用关键字const 定义,用于存储不会变化的数据

定义方法 const identifier [type] = value

  1. package main
  2. // 常量定义
  3. const P float64 = 3.14159
  4. // 简短而优雅的写法
  5. const(
  6. CODE_STATUS = 100
  7. START_NUM int = 1
  8. START_NUM1 // 自动 延用上一行的数据值 1,
  9. )
  10. func main(){
  11. }

1.2 常量定义的注意事项

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

1.3 关于iota 的使用

用法 const identifier = iota

iota 就是int 类型

  1. package main
  2. const(
  3. A int = iota // 0
  4. B // 1
  5. C // 2
  6. )
  7. const(
  8. D = iota // 0
  9. E ="jmz" // jmz
  10. F // jmz
  11. G = iota // 3
  12. H = iota * 2 // 8
  13. I // 10
  14. J = iota // 6
  15. K // 7
  16. )
  17. func main(){
  18. }

1.4 iota 的讲解

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

二、变量

2.1 变量声明

var identifiter [type]

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

2.2 多变量声明

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

2.3 声明与赋值

  1. 1、关于值类型变量的声明,go编辑器会自动赋予该变量初始值
  2. int 0float 0.0bool falsestring 为空字符串,指针为 nil,引用类型变量为nil
  3. 记住所有的内存在 Go 中都是经过初始化的。
  4. 2、变量尽量遵循驼峰命名法
  5. 如:userName,startDate
  6. 3、变量声明后不能再次声明,否则会报错
  7. 简短声明中 只要有一个未声明,就不会报错
  8. 如:
  9. num := 0
  10. num,ok := iName.(int) // 这是断言,返回两个值

三、值类型与引用类型

  1. go 中有两个数据类型 值类型和引用类型,我数据类型中,具体讲解
  2. &变量 可以获取变量的地址
  3. 如:
  4. num := 12
  5. println(&num)
  6. 值类型:
  7. 1、变量 直接指向 内存中的值
  8. 2、将一个变量 赋值给 另一个变量,实际是对内存中的值进行了拷贝
  9. 3、值类型的变量的值存储在栈中
  10. 引用类型:
  11. 1、引用类型的变量存储的是内存值所在的地址(数字),内存地址中第一个字所在的位置
  12. 2、将一个引用类型变量 赋值给 另一个引用类型变量,实际只是引用(地址)的复制
  13. 那些事值类型,那些事引用类型,请看下一章

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

go的常量与变量的更多相关文章

  1. swift 简介和常量与变量 --- swift 入门

    一.思维导图 二. 代码 //创建UIView 和按钮 let views = UIView(frame: CGRect(x:20, y: 20, width: 100, height: 100))/ ...

  2. .NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]

    注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 ...

  3. [Java入门笔记] Java语言基础(二):常量、变量与数据类型

    常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Java中声明常量必须使用final关键字.常量还可以分为两种意思: 第1种意 ...

  4. 数据类型、常量、变量、printf、scanf和运算符

    数据类型 常量 变量 printf函数介绍 scanf函数介绍 运算符 数据类型 数据类型是指数据在内存中存储的方式. C语言中有5大数据类型:基本类型.构造类型.指针类型.空类型.定义类型. C语言 ...

  5. 【C语言】C语言常量和变量

    目录: [常量]   · 定义   · 分类   · 特殊字符型常量 [变量]   · 定义   · 定义变量   · 变量的使用   · 变量使用注意   · 变量常见问题 1.常量 · 定义 常量 ...

  6. 【C语言入门教程】2.2 常量 与 变量

    2.2 常量 与 变量 顾名思义,常量是运算中不能改变数值的数据类型,变量是可改变数值的数据类型.根据需要,可将一些在程序中不必改变数值的类型定义为常量,这样也可避免因修改数值造成程序错误.任何改变常 ...

  7. 02_Swift2基础之常量和变量+注释+分号

    1. 常量和变量 常量 和 变量 把一个名字(比如 'number' 或者 'welcomeMessage')和一个指定类型的值(比如数字'10'或者字符串 ' "Hello" ' ...

  8. C语言回顾-常量和变量

    1.C语言共32个关键字 1)数据类型关键字 a.基本数据类型 void char int float double b.类型修饰关键字 short long signed unsigned c.复杂 ...

  9. Java 关键字、标识符、注释、常量与变量、数据类型,算术、赋值、比较、逻辑、位、三元运算符和流程控制、break、continue【3】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

  10. 不可或缺 Windows Native (2) - C 语言: 常量,变量,基本数据类型

    [源码下载] 不可或缺 Windows Native (2) - C 语言: 常量,变量,基本数据类型 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 常量 变量 基本 ...

随机推荐

  1. 在oninitdialog后添加初始化变量

    需要 UpdateData(FALSE); 刷新界面 不然有时会不显示.

  2. nginx配置https转发的一个例子

    server { listen ; #https默认端口不是80,而是443 server_name www.test.com; ssl on; ssl_certificate cert/.pem; ...

  3. SQL上门

    学习这个 介绍:SQL 是用于访问和处理数据库的标准的计算机语言.结构化化查询语言! SQL可以分为两大部分:数据操作语言(DML)和数据定义语言(DDL) 数据操作语言:select.update. ...

  4. Linux:用户和组总结

    从创建文件说起:useradd xiaomi           这里是创建了xiaomi用户 默认系统还会创建:/home/xiaomi  /var/mail/xiaomi        即家目录和 ...

  5. RabbitMQ在Ubuntu上的环境搭建

    1.修改/etc/apt/sources.list文件 A:命令:vi /etc/apt/sources.list B:在最后一行加上:deb http://www.rabbitmq.com/debi ...

  6. PAT 1114 Family Property

    This time, you are supposed to help us collect the data for family-owned property. Given each person ...

  7. ganglia问题小结

    1.gmetad和rrdtool的关系 gmetad负责将轮询gmond拉取到的数据存入rrdtool的文件中,rrdtool 2.gemtad.conf ①命令:/usr/sbin/gmetad - ...

  8. 清北学堂模拟赛d5t5 exLCS

    分析:比较巧妙的一道题.经典的LCS算法复杂度是O(nm)的,理论上没有比这个复杂度更低的算法,除非题目有一些限制.这道题中两个字符串的长度不一样,f[i][j]如果表示第一个串前i个,第二个串前j个 ...

  9. Segmentation fault到底是何方妖孽

    http://blog.chinaunix.net/uid-23069658-id-3959636.html?page=2 进程运行的时候,它虚拟地址空间的布局和它所占用的物理内存到底是什么样子呢?虚 ...

  10. nyoj_49_开心的小明_201403161133

    开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...