zoukankan      html  css  js  c++  java
  • Go语言趣学指南-lesson7

    整数

    本章学习目标

    1、学会使用10种不同的整数类型

    2、学会选择合适的类型

    3、学会使用十六进制表示和二进制表示

    Go语言里的整数类型

    • Go提供10种不同类型的整数,它们都称为整数类型(integer)
      • 不可以存小数部分
      • 范围有限
      • 通常根据数值范围来选取整数类型
    • 5种整数类型是有符号的
      • 能表示正数、0、负数
    • 5种整数类型是无符号的
      • 能表示正数和0
    • 比较常用的整数类型有int和无符号的uint

    8种整数类型取值范围

    整数类型、包括有符号和无符号的、实际上一共8种类型,它们取值范围各不相同、和架构无关

    • int8: -128 ~ 127
    • int16: -32768 ~ 32767
    • int32: -2147483648 ~ 2147483647
    • int64: -9223372036854775808 ~ 9223372036854775807
    • uint8: 0 ~ 255
    • uint16: 0 ~ 65535
    • uint32: 0 ~ 4294967295
    • uint64: 0 ~ 18446744073709551615

    int和uint

    • int和uint是针对目标设备优化的类型:
      • 在比较老的设备上int和uint都是32位,而在新设备上都是64位
    • 虽然在某些设备上int可以当成int32,但是在有些设备上也可以当成int64,其实他们三个是不同的类型。
    • int并不是其他类型的别名

    打印数据类型

    在Printf里使用%T可以打印出数据的类型

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	year := 2020
    	fmt.Printf("Type %T for %v
    ", year, year)
    	a := "text"
    	fmt.Printf("Type %T for %[1]v
    ", a) //为避免重复使用同一个变量两次,可以利用[1]来重复第一个格式化变量
    	b := 42
    	fmt.Printf("Type %T for %[1]v
    ", b)
    	c := 3.14
    	fmt.Printf("Type %T for %[1]v
    ", c)
    	d := true
    	fmt.Printf("Type %T for %[1]v
    ", d)
    }
    
    
    执行结果:
    
    Type int for 2020
    Type string for text
    Type int for 42
    Type float64 for 3.14
    Type bool for true
    

    uint8

    • uint8 可以用来表示8位的颜色(红绿蓝:0-255)
    • 为什么不用int表示8位颜色呢?
      • uint8的取值范围正好合适255,而int则多出来几十亿不合理

    十六进制表示法

    • Go 语言中,在数的前面加上0x前缀表示可以用十六进制的形式表示数值

    • 打印十六进制的数,使用%x格式化动词

    • 同样也能指定宽度和填充

      var red, green, blue uint8 = 0, 141, 213
      fmt.Printf("color: #%02x%02x%02x;", red, green, blue)
      

    整数环绕

    所有的整数类型都有一个取值范围,超过这个范围,就会发生“环绕”。如何避免?咋需要选择取值范围大的类型了。

  • 相关阅读:
    log4net
    配置文件序列化到文件中
    log日志
    Quartz任务管理
    tuple
    mvc视图中使用JavaScriptSerializer
    windows服务安装
    23种设计模式之普通工厂模式代码实例
    23种设计模式之单例模式代码实例
    putty文件传输
  • 原文地址:https://www.cnblogs.com/walker1024/p/14176638.html
Copyright © 2011-2022 走看看