GO-学习-03-基本数据类型

数据类型:基本数据类型和复合数据类型
基本数据类型:整型、浮点型、布尔型、字符串
复合数据类型:数组、切片、结构体、函数、map、通道(channel)、接口

整型:
在这里插入图片描述

package main 
import "fmt"
import "unsafe"
func main(){//1.定义int类型    默认int64var num1 int = 10fmt.Printf("num=%v 类型:%T",num1,num1)//2.int8的范围演示var num2 int8 = 100//var num2 int8 = 128 //超出范围//unsafe.Sizeof 查看不同长度的整型 在内存里面的存储空间var num3 int8 =66fmt.Printf("num=%v 类型:%T",num3,num3)fmt.Printf(unsafe.Sizeof(num3)) // 1  一个字节   8位1字节//3.uint8的范围var num4 = 255  //var num4 = -2 //错误////int 不同长度的直接转换var a1 int32 = 10var a2 int64 = 20fmt.Println(int64(a1)+a2)fmt.Println(a1+int32(a2))//高位转移低维可能会溢出,导致错误//6.数字字面量语法   便于开发者以二进制,八进制,十六进制浮点数的格式定义数v1 := 0b00101101  //自动识别为二进制00101101=101101 也就是十进制的45v2 := 0o377       //代表八进制//%d 代表10进制输出,%b代表2进制,%o代表8进制  %x代表16进制   %v代表原样输出  v3 := 1fmt.Printf("num=%v 类型:%T",v3,v3)  //9      intfmt.Printf("num=%d 类型:%T",v3,v3)  //9fmt.Printf("num=%b 类型:%T",v3,v3)  //1001fmt.Printf("num=%o 类型:%T",v3,v3)  //11fmt.Printf("num=%x 类型:%T",v3,v3)  //9
}

数字字面量语法是一种便于开发者以不同进制格式定义数的语法。这允许开发者以二进制、八进制、十进制和十六进制的形式来表示数字。

以下是各种进制数字字面量的示例:

  • 二进制:以0b或0B开头,后面跟着一串由0和1组成的数字序列。例如:0b101010 表示42。
  • 八进制:以o开头,后面跟着一串由0到7的数字组成的序列。例如:042 表示34。
  • 十进制:普通的整数表示。例如:123 表示123。
  • 十六进制:以0x或0X开头,后面跟着一串由0到9和A到F(或a到f)的数字和字母组成的序列。例如:0x1A 表示26。

除了整数,浮点数也可以使用数字字面量语法表示。浮点数可以使用十进制或科学计数法表示。例如:3.14 表示圆周率π,而2.5e2 表示250。

数字字面量语法提供了一种方便的方式来定义不同进制和浮点数的数字。这在编程中经常用于表示特定的数值或进行数值转换。

Go语言的基本数据类型包括以下几种:

  1. bool:布尔类型,取值为true或false。

  2. 整数类型:包括int和uint,分别表示有符号整数和无符号整数。根据不同的位数,还包括int8、int16、int32、int64和uint8、uint16、uint32、uint64这些具体的整数类型。

  3. 浮点型:包括float32和float64,分别表示32位和64位的浮点数。

  4. 字符串类型:用于表示文本字符串,由一串字符组成。

  5. 字符类型:用于表示单个Unicode字符。

  6. 数组类型:用于存储固定数量的相同类型的元素。

  7. 切片类型:类似于数组,但长度可变。

  8. 结构体类型:用于自定义复杂的数据结构,可以包含多个不同类型的字段。

  9. 指针类型:用于存储变量的内存地址。

  10. 函数类型:表示函数的类型。

  11. 接口类型:用于定义一组方法的集合。

  12. 映射类型:用于存储键值对的集合。

  13. 通道类型:用于在多个goroutine之间进行通信。

这些基本数据类型在Go语言中都有对应的关键字和语法来表示和使用。通过组合和使用这些基本数据类型,开发者可以构建出更复杂的数据结构和逻辑。Go语言的基本数据类型包括以下几种:

  1. bool:布尔类型,取值为true或false。

  2. 整数类型:包括int和uint,分别表示有符号整数和无符号整数。根据不同的位数,还包括int8、int16、int32、int64和uint8、uint16、uint32、uint64这些具体的整数类型。

  3. 浮点型:包括float32和float64,分别表示32位和64位的浮点数。

  4. 字符串类型:用于表示文本字符串,由一串字符组成。

  5. 字符类型:用于表示单个Unicode字符。

  6. 数组类型:用于存储固定数量的相同类型的元素。

  7. 切片类型:类似于数组,但长度可变。

  8. 结构体类型:用于自定义复杂的数据结构,可以包含多个不同类型的字段。

  9. 指针类型:用于存储变量的内存地址。

  10. 函数类型:表示函数的类型。

  11. 接口类型:用于定义一组方法的集合。

  12. 映射类型:用于存储键值对的集合。

  13. 通道类型:用于在多个goroutine之间进行通信。

这些基本数据类型在Go语言中都有对应的关键字和语法来表示和使用。通过组合和使用这些基本数据类型,开发者可以构建出更复杂的数据结构和逻辑。

Go语言是谷歌公司开发的一种编程语言。Go语言的由来可以追溯到2007年,当时Google的工程师Robert Griesemer、Rob Pike和Ken Thompson开始着手开发一种新的编程语言,目标是创造一种更简单、更高效、更安全的编程语言,以满足Google内部大规模软件开发的需求。

他们认为现有的编程语言在处理并发程序和多核计算方面存在一些问题,因此决定开发一种更适合并发编程的语言。这个项目最初被称为“20%项目”,因为参与者可以在工作时间的20%内进行开发。

在开发过程中,他们吸取了其他编程语言的优点,如C、Pascal、Algol等,并且对Go语言进行了一些创新的设计,以提高开发效率和代码的可读性。

2009年,Go语言的第一个固定版本发布,正式对外开放。随后,Go语言逐渐获得了广泛的关注和使用,得到了开发者的认可。

Go语言的目标是简洁、高效和可靠,其特点包括:静态类型、垃圾回收、编译型、并发编程支持等。Go语言在Google内部得到了广泛应用,并且在全球范围内被广泛采用,成为一种流行的编程语言。Go语言是谷歌公司开发的一种编程语言。Go语言的由来可以追溯到2007年,当时Google的工程师Robert Griesemer、Rob Pike和Ken Thompson开始着手开发一种新的编程语言,目标是创造一种更简单、更高效、更安全的编程语言,以满足Google内部大规模软件开发的需求。

他们认为现有的编程语言在处理并发程序和多核计算方面存在一些问题,因此决定开发一种更适合并发编程的语言。这个项目最初被称为“20%项目”,因为参与者可以在工作时间的20%内进行开发。

在开发过程中,他们吸取了其他编程语言的优点,如C、Pascal、Algol等,并且对Go语言进行了一些创新的设计,以提高开发效率和代码的可读性。

2009年,Go语言的第一个固定版本发布,正式对外开放。随后,Go语言逐渐获得了广泛的关注和使用,得到了开发者的认可。

Go语言的目标是简洁、高效和可靠,其特点包括:静态类型、垃圾回收、编译型、并发编程支持等。Go语言在Google内部得到了广泛应用,并且在全球范围内被广泛采用,成为一种流行的编程语言。

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

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

相关文章

远程调试 Python 脚本

这段代码用于远程调试 Python 脚本,特别是通过 Visual Studio Code(VS Code)的远程调试功能。它会在指定的服务器 IP 和端口上等待调试器的连接。以下是每一行代码的详细介绍及中文注释: # 检查是否提供了服务器 IP 和端口 if ar…

【个人笔记】一个例子理解工厂模式

工厂模式优点:创建时类名过长或者参数过多或者创建很麻烦等情况时用,可以减少重复代码,简化对象的创建过程,避免暴露创建逻辑,也适用于需要统一管理所有创建对象的情况,比如线程池的工厂类Executors 简单工…

Apache Doris + Paimon 快速搭建指南|Lakehouse 使用手册(二)

湖仓一体(Data Lakehouse)融合了数据仓库的高性能、实时性以及数据湖的低成本、灵活性等优势,帮助用户更加便捷地满足各种数据处理分析的需求。在过去多个版本中,Apache Doris 持续加深与数据湖的融合,已演进出一套成熟…

代码改进,模型优化,强化深度学习

在线个人接代码改进,带跑通,预测模型,模型优化,增加模块,预测,微调,融合, Depth learning,机器学习程序带写,环境调试,代码调通,模型优…

32单片机开发bootloader程序

一,单片机为什么要使用bootloader 1、使用bootloader的好处 1) 程序隔离:可以同时存在多个程序,只要flash空间够大,或者通过外挂flash,可以实现多个程序共存,在多个程序之间切换使用。 2)方便程…

OpenHarmony 入门——初识JS/ArkTS 侧的“JNI” NAPI 常见的函数详解(二)

引言 前面一篇文章OpenHarmony 入门——初识JS/ArkTS 侧的“JNI” NAPI(一)介绍了NAPI的基础理论知识,今天重点介绍下NAPI中重要的函数。 一、Native 侧的NAPI的相关的C函数 以下面一段代码为例介绍下主要函数的功能和用法。 napi_value …

01-client-go

想学习K8S源码,可以加 :mkjnnm 1、介绍 client-go 是用来和 k8s 集群交互的go语言客户端库,地址为:https://github.com/kubernetes/client-go client-go 的版本有两种标识方式: v0.x.y (For each v1.x.y Kubernetes…

系统模块时序图的重要性:解锁系统模块交互的全景视图

在复杂的系统开发中,理解和管理不同模块之间的交互是成功的关键。时序图是一种有效的工具,可以帮助我们清晰地展示这些交互,提升设计和开发的效率。本文将深入探讨系统模块之间的时序图,并通过实例展示其实际应用。 1. 什么是系统模块之间的时序图? 系统模块之间的时序图…

Layui表格向下滑动时表头固定悬浮

记录:Layui表格向下滑动时表头固定悬浮 使用table的height参数: 示例 //“方法级渲染”配置方式 table.render({ //其它参数在此省略height: 315 //固定值 }); table.render({ //其它参数在此省略height: full-20 //高度最大化减去差值 }); 等价于&am…

项目的小结

1.实现实时聊天 1.服务端建立一个ConcurrentHashMap<> 用来存储在线用户&#xff0c;用户账号和socket然后&#xff0c;如果有个人发了信息&#xff0c;就去数据库中查询&#xff0c;然后根据这个在线用户进行传递信息 服务端框架&#xff1a; public class ServerMain {…

git sendemail使用

教程参考&#xff1a; git-send-email - 以电子邮件形式发送补丁集 1、安装git-email 2、配置 SMTP 服务器 git config --global sendemail.smtpserver smtp.163.com git config --global sendemail.smtpserverport 465 git config --global sendemail.smtpuser xxxxxx163.c…

Hyperledger Fabric 网络体验 - 网络启动过程概览

进入fabric-samples/test-network目录&#xff0c;执行指令&#xff1a; ./network.sh up -i 2.5执行完指令能看到fabric已经启动。 作为第一次Fabric网络体验&#xff0c;网络启动主要包含三个操作&#xff0c;分别是生成配置文件、启动网络和操作网络。 配置文件 使用cr…

PHP-显示所有错误信息

1 需求 2 接口 3 示例 要在 PHP 中显示所有错误信息&#xff0c;你可以通过修改 php.ini 配置文件或在你的 PHP 脚本中设置错误报告级别来实现。以下是两种常见的方法&#xff1a; 方法一&#xff1a;修改 php.ini 配置文件 找到你的 php.ini 文件。这个文件的位置取决于你的 P…

传知代码-智慧医疗:纹理特征VS卷积特征(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 论文链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S1076633223003537?__cf_chl_rt_tkJ9Aipfxyk5d.leu48P20ePFNd4B2aunaSmzVpXCg.7g-1721292386-0.0.1.1-6249 论文概述 今天我们把视线…

【系统架构设计师】十八、信息系统架构设计理论与实践②

目录 四、企业信息系统的总体框架 4.1 战略系统 4.2 业务系统 4.3 应用系统 4.4 企业信息基础设施 4.5 业务流程重组BPR 4.6 业务流程管理BPM 五、信息系统架构设计方法 5.1 行业标准的体系架构框架 5.2 架构开发方法 5.3 信息化总体架构方法 5.4 信息化建设生命周…

Android小技巧:利用动态代理自动切换线程(续)

本文是针对上文Android小技巧&#xff1a;利用动态代理自动切换线程的一个补充&#xff0c;补充一种简单的实现方式。 上文中我们提到利用动态代理将对某个对象的方法调用自动切换到对应线程中去&#xff0c;只是探讨了可行性和局限&#xff0c;但如果每个功能都手动创建代理就…

Golang | Leetcode Golang题解之第290题单词规律

题目&#xff1a; 题解&#xff1a; func wordPattern(pattern string, s string) bool {word2ch : map[string]byte{}ch2word : map[byte]string{}words : strings.Split(s, " ")if len(pattern) ! len(words) {return false}for i, word : range words {ch : patt…

【知识分享】MIPI C-PHY 互连技术参数定义

目录 0 概述 1 Interconnect Specifications 1.1 Differential Insertion Loss 1.2 Differential Reflection Loss 1.3 Common-Mode Reflection Loss 1.4 Intra-Lane Cross Coupling 1.5 Mode-Conversion Loss 1.6 Inter-Lane Static Skew 2 Driver and Receiver Char…

好的STEM编程语言有哪些?

STEM是科学&#xff08;Science&#xff09;&#xff0c;技术&#xff08;Technology&#xff09;&#xff0c;工程&#xff08;Engineering&#xff09;&#xff0c;数学&#xff08;Mathematics&#xff09;四门学科英文首字母的缩写&#xff0c;STEM教育简单来说就是在通过在…

【管控业财一体化】

1. 引言 大型集团在现代企业管理中扮演着举足轻重的角色&#xff0c;其管控业财一体化解决方案是实现企业高效运营的关键。随着数字化转型的加速&#xff0c;业财一体化不再局限于财务与业务流程的简单融合&#xff0c;而是向着更深层次的数据驱动、智能化决策和价值创造方向发…