zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    微信 token ticket jsapi_ticket access_token 获取 getAccessToken get_jsapi_ticket方法
    PHP 日志 记录 函数 支持 数组 对象 新浪 sae 环境 去掉 空格 换行 格式化 输出 数组转字符串
    原生 原始 PHP连接MySQL 代码 参考mysqli pdo
    PHP 数字金额转换成中文大写金额的函数 数字转中文
    使用PHPMailer发送带附件并支持HTML内容的邮件
    设置输出编码格式 header 重定向 执行时间 set_time_limit 错误 报告 级别 error_reporting
    html5 bootstrap pannel table 协议 公告 声明 文书 模板
    指向指针的指针
    二级指针
    c语言:当指针成为参数后
  • 原文地址:https://www.cnblogs.com/chnmig/p/10109770.html
Copyright © 2011-2022 走看看