Golang教程 - 数据类型基本指南与实例

70 阅读3分钟

在这个博文系列中,我们将通过实例来学习golang中基本的内置预定义数据类型的教程。

Go语言的数据类型

Go是谷歌的一种现代开源编程语言。

它是一种静态类型语言,意味着类型检查将在编译时完成。变量可以声明类型或从类型推理中推断出来。

golang中的数据类型定义了相同的数据类型,可以用来分配内存大小来存储特定的值。

它有几种类似于任何编程语言的内置类型。

有几种数据类型可以根据类似的数据类型进行分类

  • 数字类型--这代表数字,可分为整数、浮点数和其他类型。
  • 字符串类型--这代表一组字符
  • 布尔类型--它代表布尔值--真或假
  • 自定义数据类型--它包含不同的类型,如指针、数组、结构、联合、地图和通道类型。

Golang整数数据类型

这些是用来存储正数和负数的,包括零。它有基于大小和有符号类型的各种类型。

无符号整数类型

无符号整数允许包括零在内的正值。它不允许负值

内建类型以字节为单位的大小值的范围
uint81 字节0至255
uint162 字节0至65535
uint324 字节0至4294967295
uint648 字节0至18446744073709551615

其他数字类型
还有其他数字类型byte等。

内建类型以字节为单位的大小取值范围
字节1 字节0至255与uint8相同
符文2 字节0到65535 与int32相同
uint4 或 8 字节基于环境
int4或8个字节基于环境
uintptr4或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。

内建类型字节大小描述
float324 字节IEEE-754的浮动数字值
float648 字节IEEE-754的浮动数字值
复杂648 字节带有float32实部和虚部的复数
复数1284 或 8 字节具有浮动64实部和虚部的复数
uintptr4或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`