zoukankan      html  css  js  c++  java
  • go 学习之数据类型

    数据类型:基本数据类型和派生(复杂数据类型)

    基本数据类型:数值型,字符型,布尔型,字符串(string)

    复杂数据类型:指针,数组,结构体,管道,函数,切片,接口

    int8(1字节)(-128~127),

    int16(2字节)(-2/15~2/15-1),

    int32(4字节)(-2/31~2/31-1),

    int64(8字节)(-2/63~2/63-1)

    32位系统,int默认采用int32类型

    64位系统,int默认采用int64类型

    浮点型:单精度(float32),双精度(float64)

    浮点数都是有符号的,尾数部分可能丢失,造成精度损失,float64要比float32更加准确(通常情况下使用)

    浮点类型有固定的范围和字符长度,不受具体OS的影响,默认声明float64,

    两种表示法:

    十进制:5.12,.512

    科学计数法形式,如5.1234e2(5.1234*10的2次方),5.1234E-2(5.1234/10的2次方)

    rune 占用存储空间同int32,表示一个Unicode码

    byte 占用存储空间等同于uint8,当要存储字符时选用byte(可存数字)

    字符常量是用单引号括起来的单个字符,如:i := 'a'; i := '9'

    在go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值

    可以直接给某个变量附一个数字,热庵后按格式化输出时%c,会输出该数字对应的unicode字符

    字符类型是可以进行运算的,相当于一个整数,因为他都对应有Unicode码

    字符类型本质探讨:

    存储:字符 -> 对应码值 -> 二进制 -> 存储

    读取:二进制 -> 码值 -> 字符 ->读取

    字符串

    字符串一旦赋值了,字符串就不能修改了,在go中字符串是不可变的。

    两种表示形式:

    1.双引号,会识别转义字符

    2.反引号,以字符串的原生形式输出,包括换行和特殊字符,可以防止攻击,输出源代码等效果。

    当一行太长需要换行拼接时,“+”留在上一行

    类型转换:

    转换时将原值转换后的新值付给变量,原值未发生变化

    float64转换成float8,多余的部分会按溢出丢弃处理,不会报错

    基本数据类型转换成string,

    1、fmt.Sprintf("%参数", 表达式),参数和表达式的类型要匹配;

    2、使用strconv包

    判断类型:

            i := 4
            fmt.Printf("i的类型:%T 
    ", i)
    

    unsafe.sizeof()返回类型本身所占用的字节数,而非数据内容的字节数

    bit 计算机中的最小存储单位,byte计算机中基本存储单元。

  • 相关阅读:
    把git项目放到个人服务器上
    关于fcitx无法切换输入法的问题解决
    博客变迁通知
    (欧拉回路 并查集 别犯傻逼的错了) 7:欧拉回路 OpenJudge 数据结构与算法MOOC / 第七章 图 练习题(Excercise for chapter7 graphs)
    (并查集) HDU 1856 More is better
    (并查集 不太会) HDU 1272 小希的迷宫
    (并查集 注意别再犯傻逼的错了) HDU 1213 How Many Tables
    (最小生成树 Kruskal算法) 51nod 1212 无向图最小生成树
    (并查集) HDU 1232 畅通工程
    (最小生成树 Prim) HDU 1233 还是畅通工程
  • 原文地址:https://www.cnblogs.com/Caoxt/p/14149789.html
Copyright © 2011-2022 走看看