Go语言数据类型简单介绍

 更新时间:2023年08月30日 08:28:32   作者:小万哥丶  
这篇文章主要介绍了Go语言数据类型简单介绍的相关资料,需要的朋友可以参考下

数据类型是编程中的重要概念。数据类型指定了变量值的大小和类型。

Go是静态类型的,这意味着一旦变量类型被定义,它只能存储该类型的数据。

Go有三种基本数据类型:

  • bool:表示布尔值,要么是true,要么是false。
  • 数值型:表示整数类型、浮点数值和复数类型。
  • string:表示字符串值。

示例

以下示例展示了Go中的一些不同数据类型:

package main
import ("fmt")
func main() {
var a bool = true // 布尔值
var b int = 5 // 整数
var c float32 = 3.14 // 浮点数
var d string = "Hi!" // 字符串
fmt.Println("布尔值: ", a)
fmt.Println("整数: ", b)
fmt.Println("浮点数: ", c)
fmt.Println("字符串: ", d)
}

布尔数据类型

布尔数据类型使用bool关键字声明,只能取值true或false。

布尔数据类型的默认值是false。

示例

以下示例展示了声明布尔变量的不同方式:

package main
import ("fmt")
func main() {
var b1 bool = true // 有类型声明和初始值
var b2 = true // 无类型声明但有初始值
var b3 bool // 有类型声明但无初始值
b4 := true // 无类型声明但有初始值
fmt.Println(b1) // 输出 true
fmt.Println(b2) // 输出 true
fmt.Println(b3) // 输出 false
fmt.Println(b4) // 输出 true
}

Go整数数据类型

整数数据类型用于存储没有小数点的整数,例如35、-50或1345000。

整数数据类型有两个类别:

  • 有符号整数 - 可以存储正数和负数
  • 无符号整数 - 只能存储非负数

提示:整数的默认类型是int。如果不指定类型,类型将为int。

有符号整数

使用int关键字声明的有符号整数可以存储正数和负数:

示例

package main
import ("fmt")
func main() {
var x int = 500
var y int = -4500
fmt.Printf("类型: %T, 值: %v", x, x)
fmt.Printf("类型: %T, 值: %v", y, y)
}

Go有五个有符号整数的关键字/类型:

类型大小范围
int取决于平台:在32位系统中为 -2147483648 到 2147483647,
32位系统为32位,在64位系统中为 -9223372036854775808 到 9223372036854775807
64位系统为64位
int88位/1字节-128 到 127
int1616位/2字节-32768 到 32767
int3232位/4字节-2147483648 到 2147483647
int6464位/8字节-9223372036854775808 到 9223372036854775807

无符号整数

使用uint关键字声明的无符号整数只能存储非负数:

示例

package main
import ("fmt")
func main() {
var x uint = 500
var y uint = 4500
fmt.Printf("类型: %T, 值: %v", x, x)
fmt.Printf("类型: %T, 值: %v", y, y)
}

Go有五个无符号整数的关键字/类型:

类型大小范围
uint取决于平台:在32位系统中为 0 到 4294967295,
32位系统为32位,在64位系统中为 0 到 18446744073709551615
64位系统为64位
uint88位/1字节0 到 255
uint1616位/2字节0 到 65535
uint3232位/4字节0 到 4294967295
uint6464位/8字节0 到 18446744073709551615

选择整数类型取决于变量需要存储的值。

示例

以下示例会导致错误,因为1000超出了int8的范围(范围是从-128到127):

package main
import ("fmt")
func main() {
var x int8 = 1000
fmt.Printf("类型: %T, 值: %v", x, x)
}

结果:

./prog.go:5:7: constant 1000 overflows int8

Go浮点数数据类型

浮点数数据类型用于存储带有小数点的正数和负数,例如35.3、-2.34或3597.34987。

浮点数数据类型有两个关键字:

类型 大小 范围

  • float32 32位 -3.4e+38 到 3.4e+38。
  • float64 64位 -1.7e+308 到 +1.7e+308。

提示:浮点数的默认类型是float64。如果不指定类型,类型将为float64。

float32关键字

示例

以下示例展示了如何声明一些float32类型的变量:

package main
import (
"fmt"
)
func main() {
var x float32 = 123.78
var y float32 = 3.4e+38
fmt.Printf("类型:%T,值:%v\n", x, x)
fmt.Printf("类型:%T,值:%v", y, y)
}

float64关键字

与float32相比,float64数据类型可以存储更大范围的数字。

示例

以下示例展示了如何声明一个float64类型的变量:

package main
import (
"fmt"
)
func main() {
var x float64 = 1.7e+308
fmt.Printf("类型:%T,值:%v", x, x)
}

选择使用哪种浮点类型取决于变量需要存储的值。

示例

以下示例会导致错误,因为3.4e+39超出了float32的范围:

package main
import (
"fmt"
)
func main() {
var x float32 = 3.4e+39
fmt.Println(x)
}

结果:

./prog.go:5:7: constant 3.4e+39 overflows float32

字符串数据类型

字符串数据类型用于存储字符序列(文本)。字符串值必须用双引号括起来:

示例

package main
import (
"fmt"
)
func main() {
var txt1 string = "Hello!"
var txt2 string
txt3 := "World 1"
fmt.Printf("类型:%T,值:%v\n", txt1, txt1)
fmt.Printf("类型:%T,值:%v\n", txt2, txt2)
fmt.Printf("类型:%T,值:%v\n", txt3, txt3)
}

结果:

Type: string, value: Hello! Type: string, value: Type: string, value: World 1

到此这篇关于Go语言数据类型简单介绍的文章就介绍到这了,更多相关Go 数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang在GRPC中设置client的超时时间

    golang在GRPC中设置client的超时时间

    这篇文章主要介绍了golang在GRPC中设置client的超时时间,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • golang求连续子数组的最大和实例

    golang求连续子数组的最大和实例

    这篇文章主要介绍了golang求连续子数组的最大和实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 一文带你了解Golang中的泛型

    一文带你了解Golang中的泛型

    泛型是一种可以编写独立于使用的特定类型的代码的方法,可以通过编写函数或类型来使用一组类型中的任何一个,下面就来和大家聊聊Golang中泛型的使用吧
    2023-07-07
  • Go标准库日志打印及同时输出到控制台与文件

    Go标准库日志打印及同时输出到控制台与文件

    Go语言内置的log包实现了简单的日志服务,下面这篇文章主要给大家介绍了关于Go标准库日志打印及同时输出到控制台与文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Go 语言中程序编译过程详解

    Go 语言中程序编译过程详解

    本文旨在深入探讨Go语言的编译机制和最新的模块管理系统——Go Modules,通过详细的示例和步骤,我们将演示从简单的 “Hello World” 程序到使用第三方库的更复杂项目的开发过程,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Golang使用Gin框架实现HTTP上传文件过程介绍

    Golang使用Gin框架实现HTTP上传文件过程介绍

    由于需求中有文件上传这一个需求,在这里我们就学习一下go语言如何上传文件。本文主要通过表单的方式进行文件上传操作,本文实例为大家分享了Go实现文件上传操作的具体代码,供大家参考,具体内容如下
    2023-04-04
  • 深入理解go reflect反射慢的原因

    深入理解go reflect反射慢的原因

    我们选择 go 语言的一个重要原因是,它有非常高的性能。但是它反射的性能却一直为人所诟病,本篇文章就来看看 go 反射的性能问题,感兴趣的可以了解一下
    2023-01-01
  • golang实现并发控制的方法和技巧

    golang实现并发控制的方法和技巧

    golang 是一门支持并发的编程语言,它提供了 goroutine 和 channel 等强大的特性,让我们可以轻松地创建和管理多个执行单元,实现高效的任务处理,在本文中,我们将介绍一些 golang 的并发控制的方法和技巧,希望对你有所帮助
    2024-03-03
  • 深入理解Go设计模式之代理模式

    深入理解Go设计模式之代理模式

    代理模式是一种结构型设计模式, 其中代理控制着对于原对象的访问, 并允许在将请求提交给原对象的前后进行一些处理,从而增强原对象的逻辑处理,这篇文章主要来学习一下代理模式的构成和用法,需要的朋友可以参考下
    2023-05-05
  • Go语言原子操作atomic的使用

    Go语言原子操作atomic的使用

    本文介绍了Go语言原子操作的使用方法,原子操作是一种无锁的技术,可通过CPU指令实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10

最新评论