zoukankan      html  css  js  c++  java
  • Go学习笔记之基础数据类型

    http://studygolang.com/articles/1348

    1 整数

    在 Go 语言中,如果不加特殊前缀,都是10进制表示,例如:“100”

    整数可以直接用指数形式,例如:“1E9”,意思是 1 * (10^9),1 乘以 10 的 9 次方

    整数的加减法用 + 和 - 号,乘法用 * 号,除法用 / 号, 得到的商是整数,例如 5 / 2 = 2,而 % 号是求余(取模), 例如 5 % 2 = 1

    在 Go语言中,整数类型分为带符号整型和不带符号整型,接着又分别按照长度各自划分为4个类型。

    带符号整型 int8 int16 int32 int64

    不带符号整型  uint8 uint16 uint32 uint 64

    除此之外还有默认类型 int 和 uint,目前都是32位,未来可能会变成64位

    还有2个特殊的整型别名 ,和字符串很相关,分别是:byte(uint8),rune(int32),到字符串相关时在做解释

    整数比较用 > / < / == / != / <= / >=,结果是布尔类型, true or false

    按位运算 &(且), |(或), ^(异或),&^(与非),<<(左移),>>(右移)

    异或自身,相当于取反码, 例如 ^1 = -2(ps:(^-1) + 1 = 求-1的补码)

    2 浮点数

    在 Go 语言中,浮点数分为 float32 和 float64 两种类型,符合 IEEE 754 的规定。

    只有整数部分的浮点数,要加小数点标识,例如浮点数 1 的标识为 1.0

    对于整数字面量 和浮点数字面量,Go 根据使用的场合,会自动 整数->浮点数 或 浮点数-> 整数 转换

    3 复数

    基本上很少用到,简单介绍下

    在 Go 语言中,复数分为 complex64 和 complex128,可以用 0+1i 的格式表示  

    4 布尔

    在 Go 语言中,布尔值的类型为 bool,值是 true 或 false

    布尔可以做3种逻辑运算,&&(逻辑且),||(逻辑或),!(逻辑非)

    在逻辑表达式中,Go语言也支持短路判断

    布尔类型的值不支持其他类型的转换

    5 字符串

    在 Go 语言中,组成字符串的最小单位是字符,存储的最小单位是字节,字符串本身不支持修改。

    字节是数据存储的最小单元,每个字节的数据都可以用整数表示,例如一个字节储存的字符a,实际存储的是97而非字符的字形,将这个实际存储的内容用数字表示的类型,称之为byte。

    字符是 UTF-8 编码的 Unicode 字符,Unicode 为每一个字符而非字形定义唯一的码值(即一个整数),例如 字符a 在 unicode 字符表是第 97 个字符,所以其对应的数值就是 97,也就是说对于Go语言处理字符时,97 和 a 都是指的是字符a,而 Go 语言将使用数值指代字符时,将这样的数值称呼为 rune 类型

    通常Unicode表示一个字符时,通常会用"U+"然后紧接着一组十六进制的数字来表示这个字符,例如 字符a 通常用 U+0061 来表示。

    在 Go 语言中,如果直接按照字符的字形的话,可以用单引号 (') 括起来表示,例如 'a' ,也可按照码值来表示,可以用 xNN ,uNNNN , UNNNNNNNN 的 格式,每个 N 代表一位数。例如 字符a 可以用 x61 或 u0061 或 U00000061

    在 Go 语言中,可以用两种方式表示字符串,一种是双引号 (") 括在一起的,可以包含转义字符。另一种是使用反引号 (`) 括起的,可以包含换行等格式字符,感觉有点象其他语言的 heredoc 。

    因为组成字符串的最小单位是字符,而存储的最小单位是字节,对于字符串遍历,只有全是小于1个字节字符(即码值小于256)组成的,可以直接遍历或者转成byte切片遍历,而包含大于1个字节字符组成的,最安全的做法是转换成rune切片。

  • 相关阅读:
    单点登陆
    【springmvc学习】常用注解总结
    Excel里函数中的万金油,你确定不要点进来看看?
    Maven3在Eclipse上安装插件
    VSCode 云同步扩展设置 Settings Sync 插件
    Ubuntu 18.04 root 使用ssh密钥远程登陆
    [Asp.net] C# 操作Excel的几种方式 优缺点比较
    开源框架Autofac使用入门
    C# .net Ueditor实现图片上传到阿里云OSS 对象存储
    [python]TypeError: string indices must be integers解决方法
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/5587004.html
Copyright © 2011-2022 走看看