go——基本类型
Go有许多预定义类型,这里简单把它们分为基本类型和高级类型。下面是基本类型列表:
Go的基本类型共有18个,其中int和uint的实际宽度会根据计算架构的不同而不同。
在386计算架构下,它的宽度为32比特,即4个字节。
在amd64计算架构下,它们的宽度为64比特,即8个字节。
byte类型可以看作unit8的别名类型,而rune可以看作int32的别名类型。
rune类型专用于存储Unicode编码的单个字符。我们可以用5种方式来表示一个rune字面量。
(1)该rune字面量所对应的字符,比如"a"或"-",这个字符必须是Unicode编码规范所支持的。
(2)使用"\x"为前导并后跟两位十六进制数,这种方式可以表示宽度为1字节的值,即一个ASCII编码值。
(3)使用"\"为前导并后跟3位八进制数,这种方式也只能表示有限宽度的值,
即它只能用于表示在0和255之间的值,它与上一个表示法的表示范围是一致的。
(4)使用"\u"为前导并后跟4位十六进制数,它只能用于表示2字节宽度的值。
(5)使用"\U"为前导并后跟8位十六进制数,它只能用于表示4字节宽度的值,这种方式即为Unicode编码规范中的UCS-4表示法。
此外,rune字面量还支持一类特殊的字符序列——转义符。转义符的表示方法是在"\"后面追加一个特定的单字符。
除了上述转义符外,rune自变量中以”\“为前导的字符序列都是不和法的。
在Go中,字符串值表示了一个字符值的集合。
在底层,一个字符串值即一个包含了若干字节的序列。
长度为0的序列与一个空字符串相对应。字符串的长度即底层字节序列中字节的个数。
一个字符串字面量的长度在编译期间就能够确定。
字符串字面量有两种表示形式:原生字符串字面量(由反引号”、“包裹)和解释型字符串字面量(由双引号”"“包裹)。
前者所见即所得,而后者可以解析转义字符。
注意,字符串是不可变的,对字符串的操作只能返回一个新字符串,而不会改变原字符串并返回。
只有基于类型及其别名类型来可以作为常量的类型。常量的声明会用到关键字const。
单一常量声明一般由关键字const、常量名、常量类型、等号=和常量值组成。
下面是两个常量的说明:
const DEFAULT_IP string = “192.168.0.1” const DEFAULT_PORT int = 9001
像这样多个常量同时申明还可以简写成:
const ( DEFAULT_IP string = “192.168.0.1” DEFAULT_PORT int = 9001 )