美文网首页
Go语言之整型(整数类型)五

Go语言之整型(整数类型)五

作者: DreamKing | 来源:发表于2019-02-27 11:34 被阅读0次

Go 语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异,切片类型有着指针的便利性,但比指针更为安全,很多高级语言都配有切片进行安全和高效率的内存操作。
本节我们将介绍最基本的整型。

整型分为以下两个大类:

  • 按长度分为:int8、int16、int32、int64
  • 还有对应的无符号整型:uint8、uint16、uint32、uint64

其中,uint8 就是我们熟知的 byte 型,int16 对应C语言中的 short 型,int64 对应C语言中的 long 型。

自动匹配平台的 int 和 uint

Go 语言也有自动匹配特定平台整型长度的类型—— int 和 uint。
可以跨平台的编程语言可以运行在多种平台上。平台的字节长度是有差异的。64 位平台现今已经较为普及,但 8 位、16 位、32 位的操作系统依旧存在。16 位平台上依然可以使用 64 位的变量,但运行性能和内存性能上较差。同理,在 64 位平台上大量使用 8 位、16 位等与平台位数不等长的变量时,编译器也是尽量将内存对齐以获得最好的性能。
不能正确匹配平台字节长度的程序就类似于用轿车运一头牛和用一辆卡车运送一头牛的情形一样。
在使用 int 和 uint 类型时,不能假定它是 32 位或 64 位的整型,而是考虑 int 和 uint 可能在不同平台上的差异。

哪些情况下使用 int 和 uint

逻辑对整型范围没有特殊需求。例如,对象的长度使用内建 len() 函数返回,这个长度可以根据不同平台的字节长度进行变化。实际使用中,切片或 map 的元素数量等都可以用 int 来表示。
反之,在二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用 int 和 uint。

本文学习来源于C语言中文网>Go语言教程

相关文章

  • Go语言之整型(整数类型)五

    Go 语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有切片、结构体、函数、map、通道(ch...

  • php 转 go 基本区别

    1, 整数类型。 go 序号 类型和描述1 uint8无符号 8 位整型 (0 到 255)2 uint...

  • Python数据类型详解

    数值类型 整数类型 int Python 3 之后,整数类型为 int ,不在区分整型与长整型,(Python2....

  • Go语言学习教程(三)

    一、整型概述 * 在Go语言中可以进行数学运算的类型分为整型和浮点型 * 所有的整数数字存储到整型中就可以进行数学...

  • Go基础-005-02 基础数据类型 整数型

    1. 零值 整数型的零值是: 0 2. 类型 1)概述: 典型的整型为 int 类型。在 go 中,提供了多个 i...

  • Java基本数据类型占用字节数

    在Java中有八大基本数据类型(1)整型int :整数类型short :短整型long :长整型byte :字节类...

  • GO基本数据类型

    go语言中基本数据类型大体可以分为:整型、浮点型、布尔型、字符串。 首先看整型,在go语言中整型的...

  • 数据类型——C语言基础

    整型: 长整型(long),短整型(short),普通整型(int)(用来定义整数的数据类型) 由于占用的内存空间...

  • Go number

    Go中数值类型可细分为整数、浮点数、复数三种,每种都具有不同的大小范围和正负支持。 整数 整型分为两大类 按长度划...

  • sql 语句学习 2 -持续更新中

    go#1 MySQL 数据类型 1.1 MySQL数据类型 整型整型类型(显示宽度)int(8) 从上面的显示我们...

网友评论

      本文标题:Go语言之整型(整数类型)五

      本文链接:https://www.haomeiwen.com/subject/pvmxuqtx.html