day2-变量与数据类型
作者:互联网
变量
概念:程序的基本组成单位
定义:
- 指定变量类型
- 根据值自行判断变量类型(类型推导)
- 省略var,定义赋值
var i int
var i = 10
i, j := 20, 10
数据基本类型
基本数据类型:数值型、字符型、布尔型、字符串
派生数据类型:指针、数组、结构体、管道、函数、切片、接口、map
注意点
- 如果变量没有赋值,会初始化值,int为0,string为空字符串
- 程序中的加法,如果两值为数值类型,则做加法,反之为字符串类型,则做字符拼接
- 非同类型数值不能相加,比如1,1.2
- 定义字符变量要用双引号
整型
- 整数区分有符号、无符号,int,uint的大小和系统有关
- golang的整数默认声明为int型
- unsafe.Sizeof(n2),查看变量字节大小和数据类型
- 尽量使用占用空间小的数据类型
- bit:计算机中最小存储单位
- byte:计算机中最基本的存储单元 1byte = 8bit
浮点型
- 浮点型都是有符号的
- 尾数部分可能会丢失,造成精度丢失(-111.1234567)
- float64要比float32更精确
- 浮点型有固定的范围和字段长度,不受系统影响
- 浮点型常量有2中表现方式(十进制形式:1.22|.22必须有小数点。科学计数法:5.1234e2=5.12*10的2次方|5.12E-1:5.12/10的2次方)
字符类型
- golang中没有特意的字符类型,如果想存储单个字符,一般用byte来存储,传统的字符串是由字符组成,而go是由字节byte组成
- 如果我们保存的字符在ASCII表中,可以只用byte
- 如果我们的字符对应码值大于255,考虑用int来保存
- 如果需要按照我们输入的格式输出,需要格式话%c
- 字符串常量用‘’单引号括起来
- 字符的本质是数字,输出是,是该字符串utf8的码值
- 给变量赋值一个数字,按格式输出,会输出该数字对应的unicode字符
- 字符类型是可以运算的,整数+字符,会将字符转换成码值计算
字符串本质
- 存储:字符-对应码值-二进制-存储
- 读取:二进制-码值-字符-读取
- 字符和码值的对应关系是通过字符编码表来决定的
布尔类型
- 布尔值只有true和false
- 只占一个字节
- 主要运用于逻辑运算
string类型
- 字符串就是由一串固定长度的字符拼接起来的字符序列
- 字符串一旦赋值,不可更改
- 字符串双引号会识别转义字符
- 字符串反引号原生格式输出,可以防止攻击、输入源代码等
- 一行拼接字符串太长,+号必须写在上一行
数据类型基本转换
- (数值转换)转换可以从范围小到范围大,也可以从范围大到范围小
- (数值转换)从范围大到范围小,编译不会报错,只是转换的结果按照溢出处理
- (任何类型-string)1、Sprintf 2.strconv.fommat
- (string—任意类型)strconv.Parse
指针
- 基本数据类型,存储的是值,也叫值类型
- 获取变量的地址用&i
- 获取指针变量的值*i
- 值类型包括:int、float、bool、string、数组、结构体struct
- 引用类型:指针、slice切片、map、管道chan、interface
- 值类型内存通常在栈中分配
- 引用类型通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就会成为一个垃圾,由gc来回收
标识符
命名规范
- 由26个英文字母大小写、0-9,‘_’组成
- 数字不可以开头
- 严禁区分大小写
- 不能包含空格
- 下划线_本身就是个特殊的标识符,返回的值会被忽略
- 不能以系统保留关键字作为标识符(if、break)
- 变量名采用驼峰
- 变量名、函数名、常量如果首字母大写,可以被其他类使用,如果小写,只能在本类中使用
标签:字符,变量,数据类型,day2,字符串,类型,码值 来源: https://www.cnblogs.com/8013-cmf/p/15975515.html