golang变量与常量
变量
变量 在程序运行中可以改变的量

枚举
var (
a3 = 1
a4 = 2
)

golang不同类型变量不能替换
func main() {
var a int = 10
a = 20
a = "20"
}


同一作用于不能重复定义变量

Golang的变量如果没有赋初值,编译器会使用默认值,比如 int 默认值0sing默认值为串
golang中没有char字符型,使用byte表示一个字符 ,不能表示一个汉字,go默认使用utf8编码
bool false ture
rune = int32 4字节
byte = uint8 1字节
32位系统4个字节-231~231-1
64位系统8个字节-263~263-1
func main() {
var a byte = 255
fmt.Println(a)
var c byte = 'a'
var d rune = '总'
fmt.Println(c)
fmt.Println(d)
}

1、Golang各整数类型分:有符号和无符号,int uint的大小和系统有关。
2、Golang的整型默认声明为int型
3、如何在程序查看某个变量的字节大小和数据类型
unsafe.sizeof占用字节数
func main() {
var str string = "abcd"
fmt.Println(unsafe.Sizeof(str))
}

4、Golang程序中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正确运行下,尽量使用占用空间小的数据类型。【如:年龄】
5、bit:计算机中的最小存储单位。byte:计算机中基本存储单元。[二进制再详细说]
常量
常量 在程序运行中不可以改变的量
- 常量使用const修改
- 常量在定义时必须初始化
- 常量定义后不能修改
- 常量只能修饰bool、数值类型(int、float)、string类型
- 不允许打印常量的地址
- 字面常量是指程序中硬编码的常量定义后及为某类型(`const i = 1.3`),无需推导(无 `const PI := 3.14`)
golang中没有硬性规定常量必使用大写字母,但仍然通过首字母大小写来控制常量的访问范围
语法:
const identifier [type] = value
请判断一下情况是否正确:
1. const name="tom" 正确
2. const test float = 1.1 正确
3. connst num int 错,常量在定义时必须初始化
4.const b 10/2 正确,10/2在运算后为一个具体的值
5. var a = 10 const b a 错,编译器并不知道a的值是10,认为值是一个可变的变量
定义:
const(
a = 1
b = "string"
)
常量中的iota
package main import (
"fmt"
) const (
a = iota
b
c
d
) func main() {
fmt.Println(a, b, c, d)
}

每次在const 出现时,都会让 iota 初始化为0。
在一行定义const iota,这行不会递增。
package main import (
"fmt"
) const (
a = iota
b
) const (
c = iota
d, e = iota, iota
) func main() {
fmt.Println(a, b, c, d, e)
}

iota使用范围:自定义枚举类型、
golang变量与常量的更多相关文章
- Golang Go Go Go part2:变量及常量声明
三.关键字及内置预声明常量.类型.函数 1.关键字 Go有25个关键字,只能用在语法允许的地方,不能作为名称使用,它们是: break default func ...
- Go语言基础之1--标识符、关键字、变量和常量、数据类型、Go的基本程序结构、Golang的特性
一.前言 当我们项目较为简单时,我们在src目录下新建一个该项目目录,里面存放源码文件即可,见下图: 当我们一个项目较为复杂时,我们可以在src目录下新建一个该项目目录,在针对该项目不同模块创建不同目 ...
- 换个语言学一下 Golang (4)——变量与常量
一.变量定义 所谓的变量就是一个拥有指定名称和类型的数据存储位置. //看一个例子 package main import ( "fmt" ) func main() { var ...
- golang初识 和 变量,常量,iota
目录 一.go语言与python 1. go语言 2. python 二.变量相关 1. go语言的基本语法 2. 标识符和关键字 3. 变量声明 (1)声明变量时未指定初始值 (2)声明变量时指定初 ...
- Go变量与常量
变量与常量 变量声明 定义变量时指定变量类型式 定义变量时依靠类型推断 go是静态,强类型语言(java,c++也是如此). 静态语言: 在编译时就能确定变量类型的语言,类型推导在编译阶段可以不用指明 ...
- GO语言的基本语法之变量,常量,条件语句,循环语句
GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...
- Java程序,基本数据类型、、数据类型转换、变量和常量、常用运算符
一.基本数据类型 整数类型:byte.short. int(常用).long(较常用) 定义某个变量 int a=10: 浮点类型(小数):float.double(常用) ...
- PHP中的变量与常量详解
几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...
- Java 静态变量,常量和方法
static 关键字 例如:在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量.这时没有必要 在两个类中同时创建PI这个常量,因为这样系统会将这两个不在同一个类 ...
随机推荐
- mysql3_pymysql
python数据库编程 1.pyshon数据库接口(python DB-API) 1.为开发人员提供的数据库应用编程接口 2.python支持的数据库服务软件 mysql,oracle,sql_ser ...
- JavaEE 前后端分离以及优缺点
前端概念 前端是一切直接与用户交互的页面或软件(用户看得见.摸得着)的统称,比如各种网站网页.andorid 手机各种 App.苹果手机各种 app.微信小程序.网络游戏客户端等.所以,普通人使用计算 ...
- 有关fgets和fcntl的讨论-待整理更新
问题引出 一个client程序:select 超时监听 sockfd套接字 和 STDIN_FILENO标准输入:若sockfd可读则接收server报文:若标准输入可读(按下回车),则开始用fget ...
- redis 处理缓存击穿以及缓存雪崩
缓存击穿 1. 缓存击穿简述 某一个热点数据在缓存中失效,请求穿过redis到达DB,造成DB压力过大 2. 怎么解决缓存击穿 1. 使用redis 作为分布式互斥锁(mutex lock) 实现步骤 ...
- sql生成可读性逻辑图
下面这张图是我自己画的sql逻辑图.规定了一些画法.然后画出来是这样的. 因为经常要读别人的sql,又臭又长,可读性很差,于是想做一个程序自动生成的逻辑图. 为什么不用执行语法树,因为个人觉得语法树可 ...
- html-新闻滚动条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- GO语言常用标准库02---os包
package main import ( "fmt" "os" ) func main() { //获得当前工作路径(当前工程根目录) dir, err := ...
- 安装spark 报错:java.io.IOException: Could not locate executable E:\hadoop-2.7.7\bin\winutils.exe
打开 cmd 输入 spark-shell 虽然可以正常出现 spark 的标志符,但是报错:java.io.IOException: Could not locate executable E:\h ...
- win10家庭中文版CUDA+CUDNN+显卡GPU使用tensorflow-gpu训练模型安装过程(精华帖汇总+重新修改多次复现)
查看安装包 pip list 本帖提供操作过程,具体操作网上有好多了,不赘述.红色字体为后来复现出现的问题以及批注 题外话: (1)python 的环境尽量保持干净,尽量单一,否则容易把自己搞晕,不知 ...
- 将TVM集成到PyTorch
将TVM集成到PyTorch 随着TVM不断展示出对深度学习执行效率的改进,很明显PyTorch将从直接利用编译器堆栈中受益.PyTorch的主要宗旨是提供无缝且强大的集成,而这不会妨碍用户.PyTo ...