在这个博文系列中,我们将通过实例来学习golang中基本的内置预定义数据类型的教程。
Go语言的数据类型
Go是谷歌的一种现代开源编程语言。
它是一种静态类型语言,意味着类型检查将在编译时完成。变量可以声明类型或从类型推理中推断出来。
golang中的数据类型定义了相同的数据类型,可以用来分配内存大小来存储特定的值。
它有几种类似于任何编程语言的内置类型。
有几种数据类型可以根据类似的数据类型进行分类
- 数字类型--这代表数字,可分为整数、浮点数和其他类型。
- 字符串类型--这代表一组字符
- 布尔类型--它代表布尔值--真或假
- 自定义数据类型--它包含不同的类型,如指针、数组、结构、联合、地图和通道类型。
Golang整数数据类型
这些是用来存储正数和负数的,包括零。它有基于大小和有符号类型的各种类型。
无符号整数类型
无符号整数允许包括零在内的正值。它不允许负值
| 内建类型 | 以字节为单位的大小 | 值的范围 |
|---|---|---|
| uint8 | 1 字节 | 0至255 |
| uint16 | 2 字节 | 0至65535 |
| uint32 | 4 字节 | 0至4294967295 |
| uint64 | 8 字节 | 0至18446744073709551615 |
其他数字类型
还有其他数字类型byte等。
| 内建类型 | 以字节为单位的大小 | 取值范围 |
|---|---|---|
| 字节 | 1 字节 | 0至255与uint8相同 |
| 符文 | 2 字节 | 0到65535 与int32相同 |
| uint | 4 或 8 字节 | 基于环境 |
| int | 4或8个字节 | 基于环境 |
| uintptr | 4或8个字节 | 用于存储指针位的无符号int |
例子
这个例子包括以下内容
- 类型推理例子
- 八进制数字总是以0为前缀
- 十六进制数的前缀是0x
在java语言中没有char数据类型。byte和rune被用来表示char类型。byte表示ASCII值的字符。rune表示UTF-8格式的UNICODE字符。
package main
import "fmt"
func main() {
var int16Variable int16 = 12
var intVariable = 85 // Type inference example
var uintVariable uint = 40
var hexVariable = 0xBC
var octalVariable = 013
fmt.Printf("%d, %d, %d, %#x, %#o\n", int16Variable, intVariable, uintVariable, hexVariable, octalVariable)
var byteVariable byte = 'C'
var runeVariable rune = 'a'
fmt.Printf("%c - %d and %c - %U\n", byteVariable, byteVariable, runeVariable, runeVariable)
}
上述程序的输出是
12, 85, 40, 0xbc, 013
C - 67 and a - U+0061
浮动数字类型
像任何编程语言一样,这些类型用于表示具有十进制值的数字(3.21),例如,当你像这样声明float值时,编译器推断其类型为float64。默认类型是float64
var floatVariable = 47895.587
还有复杂的数据类型,默认类型是complex128。
| 内建类型 | 字节大小 | 描述 |
|---|---|---|
| float32 | 4 字节 | IEEE-754的浮动数字值 |
| float64 | 8 字节 | IEEE-754的浮动数字值 |
| 复杂64 | 8 字节 | 带有float32实部和虚部的复数 |
| 复数128 | 4 或 8 字节 | 具有浮动64实部和虚部的复数 |
| uintptr | 4或8字节 | 用于存储指针位的无符号int |
布尔数据类型
Go语言有数据类型bool来存储布尔值。它有预定义的值true或false
var boolVariable = true
var booleVariable1 bool = false
字符串数据类型
字符串是一组字符。在golang中字符被视为字节。字符串可以用双引号或反斜线来声明。双引号包围的字符串不能是多行,但包含换行符(n)。反斜线围成的字符串可以包含多行
var str1 = "Cloud Hadoop Blog"
var str2 = `This is programming blog for
full stack technolgies`