100天精通Golang(基础入门篇)——第5天: Go语言中的数据类型学习

简介: 100天精通Golang(基础入门篇)——第5天: Go语言中的数据类型学习

🌷 博主 libin9iOak带您 Go to Golang Language.✨

🦄 个人主页——libin9iOak的博客🎐
🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐
🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🐥



摘要

本篇文章介绍了Go语言中常用的数据类型,包括整数类型、浮点数类型、布尔类型和字符串类型。每种数据类型的概念和用法都进行了详细的说明,并给出了与Java和Python的对比代码案例。通过学习这些数据类型,读者可以掌握Go语言中数据的存储和操作方式,为编写高效、可靠的Go程序打下坚实的基础。

引言

在现代编程语言中,数据类型是构建程序的基本组成部分之一。了解和正确使用数据类型对于开发人员来说至关重要。Go语言作为一种新兴的编程语言,具有简洁、高效和并发特性,它提供了丰富的数据类型来满足不同场景下的需求。

本文将带领读者深入了解Go语言中的数据类型。我们将重点介绍整数类型、浮点数类型、布尔类型和字符串类型,并通过与Java和Python的对比来帮助读者更好地理解这些数据类型在Go语言中的使用方式。掌握这些数据类型的特性和用法,读者将能够编写出更加优雅、健壮的Go程序,并能够更好地与其他编程语言进行交互。

在接下来的章节中,我们将逐一介绍每种数据类型的概念、基本特性和使用方法,并提供丰富的代码案例进行演示。无论您是初学者还是有一定编程经验的开发者,都可以通过本文系统地学习和掌握Go语言中的数据类型,为后续的Go编程之旅打下坚实的基础。让我们开始吧!

数据类型简介部分

一、基本数据类型

以下是go中可用的基本数据类型

1.1 布尔型bool

布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true

1.2 数值型

1、整数型

  • int8
    有符号 8 位整型 (-128 到 127)
    长度:8bit
  • int16
    有符号 16 位整型 (-32768 到 32767)
  • int32
    有符号 32 位整型 (-2147483648 到 2147483647)
  • int64
    有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
  • uint8
    无符号 8 位整型 (0 到 255)
    8位都用于表示数值:
  • uint16
    无符号 16 位整型 (0 到 65535)
  • uint32
    无符号 32 位整型 (0 到 4294967295)
  • uint64
    无符号 64 位整型 (0 到 18446744073709551615)

int和uint:根据底层平台,表示32或64位整数。除非需要使用特定大小的整数,否则通常应该使用int来表示整数。

大小:32位系统32位,64位系统64位。

范围:-2147483648到2147483647的32位系统和-9223372036854775808到9223372036854775807的64位系统。

2、浮点型

  • float32
    IEEE-754 32位浮点型数
  • float64
    IEEE-754 64位浮点型数
  • complex64
    32 位实数和虚数
  • complex128
    64 位实数和虚数

3、其他

  • byte
    类似 uint8
  • rune
    类似 int32
  • uint
    32 或 64 位
  • int
    与 uint 一样大小
  • uintptr
    无符号整型,用于存放一个指针

1.3 字符串型

字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本

var str string
  str = "Hello World"

1.4 数据类型转换:Type Convert

语法格式:Type(Value)

常数:在有需要的时候,会自动转型

变量:需要手动转型 T(V)

注意点:兼容类型可以转换

二、 复合类型(派生类型)

1、指针类型(Pointer)

2、数组类型

3、结构化类型(struct)

4、Channel 类型

5、函数类型

6、切片类型

7、接口类型(interface)

8、Map 类型

数据类型详细代码案例

Go语言数据类型

Go语言具有丰富的数据类型,包括整数类型、浮点数类型、布尔类型和字符串类型。下面将介绍每种数据类型的概念和用法,并提供与Java和Python的对比代码案例。

1. 整数类型(Integer Types)

整数类型用于表示整数值。在Go语言中,整数类型包括有符号整数类型和无符号整数类型,它们的区别在于是否允许表示负数。

概念:
  • 有符号整数类型:可以表示正数、负数和零,例如intint8int16int32int64
  • 无符号整数类型:仅能表示非负数(包括零),例如uintuint8uint16uint32uint64
Go示例:
package main
import "fmt"
func main() {
    // 有符号整数类型
    var num1 int = 42
    fmt.Println(num1)
    // 无符号整数类型
    var num2 uint = 10
    fmt.Println(num2)
}
Java对比:
public class Main {
    public static void main(String[] args) {
        // 有符号整数类型
        int num1 = 42;
        System.out.println(num1);
        // 无符号整数类型(Java没有无符号整数类型)
        // 可以使用long表示大于int范围的非负整数
        long num2 = 10L;
        System.out.println(num2);
    }
}
Python对比:
# 有符号整数类型
num1 = 42
print(num1)
# 无符号整数类型(Python没有无符号整数类型)
# 可以使用大整数类型(例如long)表示大于int范围的非负整数
num2 = 10
print(num2)

2. 浮点数类型(Floating-Point Types)

浮点数类型用于表示小数值。在Go语言中,浮点数类型包括单精度浮点数和双精度浮点数。

概念:
  • 单精度浮点数:使用float32类型表示,可表示较小范围内的小数。
  • 双精度浮点数:使用float64类型表示,可表示更大范围内的小数。
Go示例:
package main
import "fmt"
func main() {
    // 单精度浮点数
    var num1 float32 = 3.14
    fmt.Println(num1)
    // 双精度浮点数
    var num2 float64 = 3.14159
    fmt.Println(num2)
}
Java对比:
public class Main {
    public static void main(String[] args) {
        // 单精度浮点数
        float num1 = 3.14
f;
        System.out.println(num1);
        // 双精度浮点数
        double num2 = 3.14159;
        System.out.println(num2);
    }
}
Python对比:
# 单精度浮点数(Python没有单精度浮点数类型)
# 使用float表示浮点数
num1 = 3.14
print(num1)
# 双精度浮点数
num2 = 3.14159
print(num2)

3. 布尔类型(Boolean Type)

布尔类型用于表示真(true)或假(false)的值。在Go语言中,布尔类型用bool表示。

概念:
  • 布尔类型:有两个取值,true表示真,false表示假。
Go示例:
package main
import "fmt"
func main() {
    var isTrue bool = true
    fmt.Println(isTrue)
}
Java对比:
public class Main {
    public static void main(String[] args) {
        boolean isTrue = true;
        System.out.println(isTrue);
    }
}
Python对比:
isTrue = True
print(isTrue)

4. 字符串类型(String Type)

字符串类型用于表示文本。在Go语言中,字符串类型用string表示。

概念:
  • 字符串类型:表示由字符组成的文本序列。
Go示例:
package main
import "fmt"
func main() {
    var message string = "Hello, World!"
    fmt.Println(message)
}
Java对比:
public class Main {
    public static void main(String[] args) {
        String message = "Hello, World!";
        System.out.println(message);
    }
}
Python对比:
message = "Hello, World!"
print(message)

以上是对Go语言基本数据类型的介绍,包括整数类型、浮点数类型、布尔类型和字符串类型。这些数据类型在Go语言中非常常用,掌握它们的概念和用法是学习和编写Go程序的基础。与Java和Python的对比可以帮助你更好地理解Go语言中的数据类型。

总结

Go语言数据类型学习总结

在学习Go语言的数据类型时,我们了解了整数类型、浮点数类型、布尔类型和字符串类型。这些数据类型在编程中起着重要的作用,理解它们的概念和使用方法对于掌握Go语言编程至关重要。

首先,整数类型是用于表示整数值的数据类型。在Go语言中,有符号整数类型可以表示正数、负数和零,而无符号整数类型仅能表示非负数。与Java相比,Go语言的整数类型没有固定的字节大小,这为程序员提供了更大的灵活性。与Python相比,Go语言的整数类型区分了有符号和无符号类型。

其次,浮点数类型用于表示小数值。在Go语言中,有单精度浮点数和双精度浮点数两种类型。单精度浮点数可以表示较小范围内的小数,而双精度浮点数可以表示更大范围内的小数。与Java相比,Go语言的浮点数类型具有相似的基本类型。与Python相比,Go语言的浮点数类型需要在声明时显式指定类型。

布尔类型用于表示真或假的值。在Go语言中,布尔类型使用bool表示。它只有两个取值,即true表示真,false表示假。与Java和Python相比,Go语言的布尔类型的使用方式基本相同。

最后,字符串类型用于表示文本。在Go语言中,字符串类型使用string表示。字符串类型是由字符组成的文本序列。与Java相比,Go语言的字符串类型使用方式相似。与Python相比,Go语言的字符串类型是原生的,不需要额外的模块。

通过学习Go语言的数据类型,我们掌握了整数类型、浮点数类型、布尔类型和字符串类型的概念和使用方法。与Java和Python的对比帮助我们更好地理解了Go语言中的数据类型。这些基本的数据类型是我们编写Go程序的基础,对于编写高效、可靠的代码至关重要。接下来,我们可以进一步学习Go语言的其他高级数据类型和相关概念,不断提升我们的Go语言编程能力。

结语

通过今天的学习,您已经踏上了Golang的学习之旅。在未来的日子里,您将探索Golang的各个方面,从基础概念到高级技巧,从实际应用到性能优化。

学习一门编程语言是一个持续的过程,每一天都是您向Golang的精通迈进的重要一步。我鼓励您坚持每天学习,保持热情和好奇心,解决挑战并享受成功的喜悦。

在您的学习旅程中,不要忘记参与社区和与其他Golang开发者交流。分享您的见解和经验,向他人学习,并在开源项目或实际应用中展示您的技能。

如果您在学习过程中遇到困难或有任何问题,不要犹豫向社区和专家寻求帮助。持续学习,勇敢探索,您将在Golang领域取得令人瞩目的成就。

最后,感谢您的阅读和支持!祝愿您在未来的每一天中都能够成为一名精通Golang的开发者!

期待听到您在学习过程中的进展和成就。如果您需要进一步的帮助,请随时告诉我。祝您在学习Golang的旅程中取得巨大成功!

如果您在学习过程中有任何疑惑,请点击下方名片,带您一对一快速入门 Go语言 的世界 ~

目录
相关文章
|
5月前
|
人工智能 安全 算法
Go入门实战:并发模式的使用
本文详细探讨了Go语言的并发模式,包括Goroutine、Channel、Mutex和WaitGroup等核心概念。通过具体代码实例与详细解释,介绍了这些模式的原理及应用。同时分析了未来发展趋势与挑战,如更高效的并发控制、更好的并发安全及性能优化。Go语言凭借其优秀的并发性能,在现代编程中备受青睐。
157 33
|
16天前
|
Cloud Native 安全 Java
Go语言深度解析:从入门到精通的完整指南
🌟 蒋星熠Jaxonic,执着的星际旅人,用Go语言编写代码诗篇。🚀 Go语言以简洁、高效、并发为核心,助力云计算与微服务革新。📚 本文详解Go语法、并发模型、性能优化与实战案例,助你掌握现代编程精髓。🌌 从goroutine到channel,从内存优化到高并发架构,全面解析Go的强大力量。🔧 实战构建高性能Web服务,展现Go在云原生时代的无限可能。✨ 附技术对比、最佳实践与生态全景,带你踏上Go语言的星辰征途。#Go语言 #并发编程 #云原生 #性能优化
|
8月前
|
编译器 Go
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
8月前
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
|
2月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。
|
2月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
3月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
3月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
248 0
|
4月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
5月前
|
分布式计算 Go C++
初探Go语言RPC编程手法
总的来说,Go语言的RPC编程是一种强大的工具,让分布式计算变得简单如同本地计算。如果你还没有试过,不妨挑战一下这个新的编程领域,你可能会发现新的世界。
118 10

推荐镜像

更多