Go语言与数据库开发:01-03

在本文中,我们将介绍go的基础数据类型。

虽然从底层而言,所有的数据都是由比特组成,但计算机一般操作的是固定大小的数,如整
数、浮点数、比特数组、内存地址等。进一步将这些数组织在一起,就可表达更多的对象,
例如数据包、像素点、诗歌,甚至其他任何对象。Go语言提供了丰富的数据组织形式,这依
赖于Go语言内置的数据类型。这些内置的数据类型,兼顾了硬件的特性和表达复杂数据结构
的便捷性。

Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型。
本文将介绍基础类型,包括:数字、字符串和布尔型;


整型

有符号类型: int8、int16、int32和int64

无符号类型: uint8、uint16、uint32和uint64

无符号的整数类型uintptr

对应特定CPU平台机器字大小的有符号和无符号整数int和uint;这两种类型都有同样的大小,32或64bit;
其中有符号整数采用2的补码形式表示,也就是最高bit位用作表示符号位

+运算符还有一个与赋值相结合的对应运算符+=,可以用于简化赋值语句。
%取模运算符

二元比较运算符,比较表达式的结果是布尔类型:

== equal to
!= not equal to
< less than
<= less than or equal to

greater than
= greater than or equal to

对于整数,+x是0+x的简写,-x则是0-x的简写;对于浮点数和复数,+x就是x,-x则是x 的负数。

bit位操作运算符:

& 位运算 AND
| 位运算 OR
^ 位运算 XOR
&^ 位清空 (AND NOT)
<< 左移

右移

一般来说,需要一个显式的转换将一个值从一种类型转化位另一种类型,并且算术和逻辑运
算的二元操作中必须是相同的类型。
否则,需要显式转换成显式转型为一个常见类型,比如:
var compote = int(apples) + int(oranges)

对于每种类型T,如果转换允许的话,类型转换操作T(x)将x转换为T类型。许多
整形数之间的相互转换并不会改变数值;它们只是告诉编译器如何解释这个值。但是对于将
一个大尺寸的整数类型转为一个小尺寸的整数类型,或者是将一个浮点数转为整数,可能会
改变数值或丢失精度。

浮点数到整数的转换将丢失任何小数部分,然后向数轴零方向截断。

上一篇:Go语言与数据库开发:01-05


下一篇:ubuntu文件权限解析