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

news2024/11/28 2:48:30

在这里插入图片描述

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

100天精通Golang(基础入门篇)

    • 摘要
    • 引言
  • 数据类型简介部分
    • 一、基本数据类型
      • 1.1 布尔型bool
      • 1.2 数值型
      • 1.3 字符串型
      • 1.4 数据类型转换:Type Convert
    • 二、 复合类型(派生类型)
  • 数据类型详细代码案例
    • Go语言数据类型
      • 1. 整数类型(Integer Types)
        • 概念:
        • Go示例:
        • Java对比:
        • Python对比:
      • 2. 浮点数类型(Floating-Point Types)
        • 概念:
        • Go示例:
        • Java对比:
        • Python对比:
      • 3. 布尔类型(Boolean Type)
        • 概念:
        • Go示例:
        • Java对比:
        • Python对比:
      • 4. 字符串类型(String Type)
        • 概念:
        • Go示例:
        • Java对比:
        • Python对比:
    • 总结
  • Go语言数据类型学习总结
  • 结语

摘要

本篇文章介绍了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语言 的世界 ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

htmlCSS-----盒模型

目录 前言: 盒子 1.内容区域 2. 边框 3. 内边距区域 4. 外边距区域(margin) 怪异盒模型 前言: 前面我们学习了CSS中的选择器的使用方法,那这一节我们就学习CSS中的盒模型,通过盒模型我们可以去更好的…

uni-app引入html2canvas截图以及截长图

下载安装html2canvas 方式一,https://www.bootcdn.cn/ CDN网站下载html2canvas插件 这里下载后放在测项目目录common下面 页面中引入 方式二、npm方式安装html2canvas 1、npm方式下载 npm i html2canvas2、引入html2canvas import html2canvas from html2can…

数据结构——广义表

文章目录 前言二、特殊矩阵的压缩存储数组的存储结构和实现按行优先存储按列优先存储 矩阵的压缩存储稀疏矩阵 广义表 总结 前言 数组,数组的压缩存储,广义表 二、特殊矩阵的压缩存储 数组的存储结构和实现 对于多维数组,可以分为按行优先…

UnityVR--组件9--视频组件VideoPlayer

目录 前言 参数解释 RenderMode渲染方式 VideoPlayer类中的API 前言 在之前的VR场景中已经使用过VideoPlayer播放视频(Unity.UI的交互(6)-播放视频),不过在VR中设置是有些不同的,这里更详细地说明一下V…

8.面向对象编程(高级部分)|Java学习笔记

文章目录 类变量和类方法类变量类变量使用注意事项和细节 类方法类方法使用注意事项和细节 理解 main 方法语法代码块代码块使用注意事项和细节讨论 单例设计模式单例模式应用实例饿汉式 VS 懒汉式 final 关键字final 使用注意事项和细节 抽象类抽象类的介绍抽象类使用的注意事…

软件测试|测试金字塔是什么,它的目的是什么,以及它包含哪些层次?

一、测试金字塔的概念: 测试金字塔是2009年Mike Cohn在他的著作《Succeeding with Agile》一书正式提出的。他是一个类比的概念,形容每一层,或者说不同集成阶段测试覆盖率和知行效率之间的一个相对关系。 测试金字塔最初的原型分三层&#…

chatgpt赋能python:Python循环间隔-了解如何在循环中增加延时

Python循环间隔 - 了解如何在循环中增加延时 在Python编程中,循环是非常常见且重要的控制语句。 它使我们可以多次执行代码块。 但是,在有些情况下,您可能需要在循环之间增加一定的延时时间。 这就是Python循环间隔的概念。 在本文中&#x…

初次使用PPYOLOE-R

目的:优化基于yolov5-obb旋转目标检测算法的证件区域检测,之前的方法是基于anchor,每次使用都要调试anchor;而ppyoloe-r是free anchor的算法; 源码位置:https://github.com/PaddlePaddle/PaddleDetection/…

学成在线----day2

1、mybatis-plus分页 pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.ap…

【大数据之Hive】九、Hive之DDL(Data Definition Language)数据定义语言

1 数据库 [ ] 里的都是可选的操作。 1.1 创建数据库 语法&#xff1a; create database [if not exists] database_name [comment database_comment(注释)] [location hdfs_path] [with dbproperties (property_name-propertyproperty_value,...)]; 如&#xff1a; creat…

真实性能测试案例之性能分析与报告

今天主要跟大家分享一个曾经所做的真实性能测试的案例&#xff0c;主要为其中性能测试分析报告过程部分&#xff0c;希望能对你以后怎么做性能分析和报告有所帮助。这个案例的测试目的为&#xff1a;在线考试为“XX平台”中的一个重要模块&#xff0c;根据目前业务的需要&#…

ChatGPT实用使用指南 让它解你所问

Chatgpt无疑是这几年来影响力最大的AI技术之一&#xff0c;生成式的AI模型正在促进各个行业的效率和自动化发展&#xff0c;Chatgpt对于个人、企业和各个行业都有着一定的影响 在我刚接触的时候&#xff0c;发现对Chatgpt的认知太肤浅了&#xff0c;一个最强的ai聊天机器人摆在…

实时检测Aruco标签坐标及位姿opencv-python4.6和4.7版本

先说opencv-contrib-python4.7.0.72时&#xff0c;aruco下面带曲线&#xff0c;但是程序也能跑&#xff0c;可以跑检测的&#xff0c;对比4.6版本需要改三个函数 4.6装opencv-contrib-python 4.7装opencv-contrib-python 1 cv2.aruco.Dictionary_get() cv2.aruco.getPredef…

Smali的使用技巧:快速定位Android应用程序中的关键代码

简述 Smali是一种Android应用程序的Dalvik虚拟机指令集汇编语言&#xff0c;用于编写和修改应用程序的DEX文件。通过编写和修改Smali代码&#xff0c;可以实现对Android应用程序的定制化和逆向分析。Smali语言类似于汇编语言&#xff0c;直接操作Dalvik虚拟机指令集。 Smali代…

2023最火的软件测试面试宝典,你刷过没?

这是一份最近疯传的软件测试面试宝典&#xff0c;你有刷过吗&#xff1f; 面试宝典一共400页&#xff0c;包括了测试基础102页&#xff0c;Linux基础38页&#xff0c;MySQL63页&#xff0c;web测试21页&#xff0c;app测试38页&#xff0c;selenium相关50页&#xff0c;性能测试…

02.引擎架构分类

简介 1.工具层 2.功能层&#xff1a;绘制、渲染、让世界里面的东西能看见、动起来 3.资源层&#xff1a;负责加载大量的数据和文件 4.核心层&#xff1a;游戏引擎的瑞士军刀&#xff0c;各种功能处理的内核 5.平台层&#xff1a;用于适配游戏不同的发行平台 第三方中间插…

3d渲染时预览和出图不一样怎么办?

在使用3dmax渲染时有时会遇到看到的图和渲染出来的图不一样的情况&#xff0c;这是为什么呢&#xff1f;有以下几方面的原因。 一、伽马 3dmax的伽马有很多&#xff0c;主要有显示伽马、输入伽马和输出伽马&#xff0c;其中预览图亮度由显示伽马决定&#xff0c;而图片亮度由输…

VUE.js中文官方文档

目录 创建一个 Vue 应用# 应用实例# 根组件# 挂载应用# DOM 中的根组件模板# 应用配置# 多个应用实例# 模板语法# 文本插值# 原始 HTML# Attribute 绑定# 简写# 布尔型 Attribute# 动态绑定多个值# 使用 JavaScript 表达式# 仅支持表达式# 调用函数# 受限的全…

隐私计算简介

随着数据规模的不断扩大和网络技术的快速发展&#xff0c;数据安全和隐私保护成为了热门的话题。隐私计算作为一种新兴的数据安全和隐私保护技术&#xff0c;为数据安全和隐私泄露问题提供了新的思路和方法。 2020年10月19日&#xff0c;Gartner发布2021年前沿战略科技趋势&am…

Blender3.2使用python脚本命令的三种方式, 以及后台渲染调用源码示例及说明

本文环境系统OS(Win10) 方式一&#xff0c;在Script(脚本)功能里面的Console(控制台输入python代码)。 如下图: 对应的三句代码是&#xff1a; print("Hi, blender.")import bpybpy.ops.mesh.primitive_cube_add(enter_editmodeFalse, alignWORLD, location(0,0, …