• Go语言从入门到放弃(三) 布尔/数字/格式化输出


    本章主要介绍Go语言的数据类型

    布尔(bool)

    布尔指对或者错,也就是说bool只有两个值, True 或 False

    两个类型相同的值可以使用比较运算符来得出一个布尔值

    当两个值是完全相同的情况下会返回 True,否则返回 False。

    package main
    
    var suma int = 11
    var sumb int = 11
    
    func main()  {
        print(suma == sumb)
    }

    上方的代码返回 true

    如果值不相同返回 false

    如果变量类型不一样会报错

    package main
    
    var suma int = 11
    var sumb int8 = 12
    
    func main()  {
        print(suma == sumb)
    }
    invalid operation: suma == sumb (mismatched types int and int8)

    逻 辑 值 可 以 被 用 于 条 件 结 构 中 的 条 件 语 句, 以 便 测 试 某 个 条 件 是 否 满 足。 另 外, 和 &&、 或 | | 与 相 等 = = 或 不 等 != 属 于 二 元 运 算 符, 而 非 ! 属 于 一 元 运 算 符。

    !运算符指的是非运算符,非 运 算 符 用 于 取 得 和 布 尔 值 相 反 的 结 果。

    当!后的值为 true 时会反转成 false

    false 时同理

    package main
    
    var aVar int = 10
    
    func main()  {
        print(!(aVar != 5))
    }

    返回 false

    和运算符 && 

    只有当两边都为 true 时才是 true

    package main
    
    var aVar int = 10
    
    func main()  {
        print(aVar != 5 && aVar !=10)
    }

    结果为 false

    或运算符 || 

    只有当两边值都为 false 时才是 false 

    package main
    
    var aVar int = 10
    
    func main()  {
        print(aVar != 5 || aVar !=10)
    }

    结果为 true

    对 于 布 尔 值 的 好 的 命 名 能 够 很 好 地 提 升 代 码 的 可 读 性, 例 如 以 is 或 者 Is 开 头 的 isSorted、 isFinished、 isVisivle, 使 用 这 样 的 命 名 能 够 在 阅 读 代 码 的 获 得 阅 读 正 常 语 句 一 样 的 良 好 体 验, 例 如 标 准 库 中 的 unicode.IsDigit( ch)

    数字类型

    数字类型大体可分为整形 int 和浮点型 float

    需要注意的是,int和unit和unitptr长度是由程序所在的操作系统决定的

      如果在32位操作系统,int和unit占32位(4字节)

      64位则占64位(8字节)

      uintptr 长度为足够存放一个指针

      # 目前机器基本为64位

    整数有多种类型,每种类型对应不同的长度

    关键字 支持的大小
    int 随操作系统变化
    int8 -128 -- 127
    int16 -32768 -- 32767
    int32 -2147483648 -- 2147483647
    int64 -9223372036854775808 -- 9223372036854775807
    uint 随操作系统变化
    uint8 0 -- 255
    uint16 0 -- 65535
    uint32 0 -- 4294967295
    uint64 0 -- 18446744073709551615

     uint 和 int 区别就是uint不支持复数

    在 Go 语言中没有 float 类型,只有 float32 和 float64 

    关键字

    支持的大小

    float32

    +- 1e-45 -> +- 3.4 * 1e38

    float64

    +- 5 * 1e-324 -> 107 * 1e308

    你需要知道的是

      int是计算最快的一种类型

      如果是对数字有要求的变量尽量规定长度

      整形的初始值(零值为0),浮点数的零值为(0.0)

      float32精确到小数点后7位,float64精确到后15位

      如果你使用到 math 包,那么尽可能使用 float64,因为 math 中关于数学运算的函数都要求接收此类型

      如果涉及到类型之间的转换使用 转换后的类型(原变量)  的方式

      如果将大范围数字转换为小范围类型时会丢失精度

    进制

    你 可 以 通 过 增 加 前 缀 0 来 表 示 8 进 制 数( 如: 077),

    增 加 前 缀 0x 来 表 示 16 进 制 数( 如: 0xFF),

    以 及 使 用 e 来 表 示 10 的 连 乘( 如: 1e3 = 1000, 或 者 6.022e23 = 6.022 x 1e23)。

    格式化输出

    在 格 式 化 字 符 串 里,% d 用 于 格 式 化 整 数(% x 和 %X 用 于 格 式 化 16 进 制 表 示 的 数 字),

    % g 用 于 格 式 化 浮 点 型(% f 输 出 浮 点 数,% e 输 出 科 学 计 数 表 示法),

    % 0d 用 于 规 定 输 出 定 长 的 整 数, 其 中 开 头 的 数 字 0 是 必 须 的。

    %n.mg 用 于 表 示 数 字 n 并 精 确 到 小 数 点 后 m 位, 除 了 使 用 g 之 外, 还 可 以 使 用 e 或 者 f,

      例 如: 使 用 格 式 化 字 符 串 %5.2e 来 输 出 3.4 的 结 果 为 3.40e + 00。

  • 相关阅读:
    Android_bug之 task ':app:mergeDebugResources'. > Some file crunching failed, see logs f
    linux下vi命令大全[转]
    百度地图api 常用demo
    Mac之vim普通命令使用[转]
    java写文件
    java读取文件
    Android中对Log日志文件的分析[转]
    Android实用代码模块集锦
    java 位运算
    MyEclipse自带maven找不到或自己外置安装
  • 原文地址:https://www.cnblogs.com/chnmig/p/10109770.html
Copyright © 2020-2023  润新知