首页 > 编程语言 >Go语言编程教程-基本数据类型

Go语言编程教程-基本数据类型

时间:2023-12-27 13:11:40浏览次数:30  
标签:编程 数据类型 var println 整型 类型 Go byte 复数

课程要点

  1. 了解布尔类型
  2. 了解整数类型
  3. 了解浮点数类型
  4. 了解复数类型
  5. 了解字符串类型
  6. 了解字符类型

布尔类型

类型 名称 取值范围 说明
bool 布尔类型 truefalse 默认值为false

示例

ok := true
println(ok)

整数类型

类型 名称 取值范围 说明
uint8 8位无符号整型 0~255
uint16 16位无符号整型 0~65535
uint32 32位无符号整型 0~4294967295
uint64 64位无符号整型 0~18446744073709551615
int8 8位有符号整型 -128~127
int16 16位有符号整型 -32768~32767
int32 32位有符号整型 -2147483648~2147483647
int64 32位有符号整型 -9223372036854775808~9223372036854775807
int 有符号整型 32位系统同int32,64位系统同int64 类型大小随操作系统的位数而定,是整数字面量的默认类型
uint 无符号整型 32位系统同uint32,64位系统同uint64 类型大小随操作系统的位数而定
uintptr 指针类型 32位系统同uint32,64位系统同uint64 用于描述指针的地址,类型大小同uint类似
byte 字节类型 uint8 int8的别名,用于描述字节
rune 字符类型 int32 int32的别名,用于描述单个字符

上述整数类型默认值都为0,其中uintptrbyterune是特殊用途的整数类型,
在整数类型的基础上赋予了额外的语义,使其具有更加强大的功能,后续会进行更加深入的解析和应用。

示例

var uint8N uint8 = 255
println(uint8N)

var uint16N uint16 = 65535
println(uint16N)

var uint32N uint32 = 4294967295
println(uint32N)

var uint64N uint64 = 18446744073709551615
println(uint64N)

var int8N int8 = 127
println(int8N)

var int16N int16 = 32767
println(int16N)

var int32N int32 = 2147483647
println(int32N)

var int64N int64 = 9223372036854775807
println(int64N)

var intN int = 1
println(intN)

var uintN uint = 1
println(uintN)

var uintptrN uintptr = 1
println(uintptrN)

var byteN byte = 255
println(byteN)

var runeN rune = '中'
println(runeN)

浮点数类型

类型 名称 取值范围 说明
float32 32位浮点数类型 -math.MaxFloat32~math.MaxFloat32 默认值为0
float64 64位浮点数类型 -math.MaxFloat64~math.MaxFloat64 默认值为0,是小数字面量的默认类型

浮点数类型用于描述小数,采用IEEE-754浮点数标准

示例

var f32 float32 = 1.1
println(f32)

var f64 float64 = 1.1
println(f64)

复数类型

类型 名称 取值范围 说明
complex64 64位复数类型 实部与虚部取值同float32 由两个float32类型组成的复数
complex128 128位复数类型 实部与虚部取值同float64 由两个float64类型组成的复数

复数包含实部和虚部,由两个浮点数组成,我们可以使用内置的complex函数来创建复数类型,
并且使用realimag函数分别获取复数的实部和虚部。

示例

// 创建complex64类型的复数
c64 := complex(float32(1.1), float32(1.2))
// 获取实部
real64 := real(c64)
// 获取虚部
imag64 := imag(c64)
println(c64)
println(real64)
println(imag64)

// 创建complex128类型的复数
c128 := complex(1.1, 1.2)
// 获取实部
real128 := real(c128)
// 获取虚部
imag128 := imag(c128)
println(c128)
println(real128)
println(imag128)

字符串类型

类型 名称 取值范围 说明
string 字符串类型 通常取值为UTF-8支持的Unicode字符集 string本质上是一个byte集合,所以也可以表示UTF-8编码之外的字符集

string类型的默认值为空字符串,同大多数编程语言一样,Golang中的字符串类型的值也是不可变的。

string类型在底层实际是用byte数组来存储的,所以我们可以直接将其与byte切片进行相互转换,
后续会有单独的章节对字符串类型进行详细介绍,这里只做简单的介绍和了解。

在Golang中并没有名为char的字符类型,但是我们可以使用上文提到过的rune类型来描述一个合法字符,
也可以直接将字符转换为字符串,如下所示

示例

s := "hello world"
println(s)
// 将字符串转为byte切片
bytes := []byte(s)
println(bytes)
// 将byte切片转为字符串
s2 := string(bytes)
println(s2)
// 定义一个字符
var char rune = '文'
// 将字符转为字符串
s = string(char)
println(s)

小结

通过上述的简单介绍,我们对Golang的基本数据类型有了一个初步的了解,和其他主流的编程语言非常相似,
如果你有一定的编程基础,相信你很快就能掌握它。

如果你没有相关的经验也没有关系,后续的教程中,我们会不断的用到这些基础类型,
并且对一些常用的基本数据类型进行更进一步的深入探索。

当然了,这些还不是Golang数据类型中的全部,Golang中还有更加复杂的复合类型,
它们具有更加强大的功能以及更加灵活的使用方式,正是因为有了它们作为Golang的基石,
才使得Golang具有如此强大的生命力。

让我们来继续逐步深入学习吧!

标签:编程,数据类型,var,println,整型,类型,Go,byte,复数
From: https://www.cnblogs.com/mstmdev/p/17925180.html

相关文章

  • 蓝队反制之--Goby反制
    原理据Goby官方解释,这实际上是一个非常久远的历史漏洞,最早的纰漏的时间是在2021年10月,当月漏洞就已修复并发布新版本。至于漏洞为何存在,得追溯到Goby的组件识别能力,Goby是使用Electron构建的客户端软件,在Goby的资产界面中,扫描结果里会展示所有符合指纹识别规则的组件名称,比如PHP......
  • Django 报错(You have 18 unapplied migration(s))
    pythonmanage.pyrunserver0.0.0.0:8000时报错:Youhave18unappliedmigration(s).Yourprojectmaynotworkproperlyuntilyouapplythemigrationsforapp(s):admin,auth,contenttypes,sessions.Run'pythonmanage.pymigrate'toapplythem.说明之前有......
  • 跟着王洋老师学编程 - 1.6 下大雪
    一、我的思路-在屏幕上画100~200个雪花,并记录每个雪花的位置-应用线程的run方法,增加每个雪花的Y轴坐标,然后重绘画布 1importjava.awt.*;2publicclassSnow{3publicstaticvoidmain(Stringargs[]){4Framew=newFrame();5......
  • ARC167D Good Permutation 题解
    ARC167D看到排列并且有\(i\getsa_i\),就可以直接建出图来,显然是若干个不相干的环。如果不求字典序最小,就可以直接不在同一个环中的\(i,j\)直接交换就可以了,因为它要求了最小化操作数。如果求字典序最小,直接从前往后扫一遍,可以用set维护不在这个环中且\(j>i\)的最小值,如果......
  • 写给开发者的软件架构实战:并发与并行编程
    1.背景介绍并发与并行编程是计算机科学的基石之一,它们在现代软件系统中扮演着至关重要的角色。随着计算机硬件的不断发展,并发与并行编程的应用也日益广泛。然而,这些概念和技术也带来了许多挑战,如数据一致性、死锁、负载均衡等。在这篇文章中,我们将深入探讨并发与并行编程的核心概念......
  • Go简单自定义协程池
    packagemainimport( "fmt" "sync")typeTaskstruct{ ffunc()error}varwgsync.WaitGrouptypePoolstruct{ //任务通道 JobQueuechanTask //worker通道 WorkerQueuechanchanTask //worker数量 MaxWorkersint}funcNewPool(ma......
  • Golang协程池ants
    官方示例packagemainimport( "fmt" "github.com/panjf2000/ants/v2" "sync" "sync/atomic" "time")varsumint32funcmyFunc(iinterface{}){ n:=i.(int32) atomic.AddInt32(&sum,n) fmt.Printf(&q......
  • 在Go语言中处理HTTP文件上传
    大家好,我是你们可爱又迷人的编程小助手,今天要带你们一起探讨在Go语言中如何处理HTTP文件上传,让我们把这场技术之旅变得轻松有趣吧!首先,想象一下这个场景:你是一个网站的开发者,用户们急切地想要上传他们的照片、文档或者其他类型的文件到你的服务器上。文件上传,听起来就像是一个神秘的......
  • Go语言中的HTTP重定向
    大家好,我是你们可爱的编程小助手,今天我们要一起探讨如何使用Go语言实现HTTP重定向,让我们开始吧!大家都知道,网站开发中有时候需要将用户的请求从一个URL导向到另一个URL。比如说,你可能想将旧的URL结构重定向到新的URL结构,或者将HTTPS重定向到HTTP等。这就需要我们掌握一个神秘的工具:H......
  • 在Go语言中处理HTTP响应的状态码
    在Web开发中,HTTP状态码是不可或缺的一部分,它们为客户端和服务器之间的通信提供了重要的反馈信息。当我们谈论在Go语言中处理HTTP响应的状态码时,我们实际上是在讨论如何正确解析这些状态码,并根据其含义采取适当的操作。在Go的net/http包中,当客户端发送请求并接收到响应时,可以通过检......