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

news2024/11/12 17:01:34

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

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

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

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

相关文章

react-native从入门到实战系列教程一环境安装篇

充分阅读官网的环境配置指南,严格按照他的指导作业,不然你一直只能在web或沙箱环境下玩玩 极快的网络和科学上网,必备其中的一个较好的心理忍受能力,因为上面一点就可以让你放弃坚持不懈,努力尝试 成功效果 三大件 …

「Unity3D」场景中的距离单位Unit与相关设置PixelsToUnits、PixelsPerUnit

GameObject在场景的位置Position,并没有明确是什么具体单位——如:Transform的x、y、z,或RectTransform的PosX、PosY、PosZ。而RectTransform在面板上显示的Width和Height,也没有具体单位,其实并不是像素。 事实上&am…

python+vue3+onlyoffice在线文档系统实战20240725笔记,首页开发

解决遗留问题 内容区域的高度没有生效,会随着菜单的高度自动变化。 解决方案:给侧边加上一个最小高度。 首页设计 另一种设计: 进来以后,是所有的文件夹和最近的文件。 有一张表格,类似于Windows目录详情&…

友盟U-APM——优秀的前端性能监控工具

在数字化转型浪潮的推动下,移动应用已成为企业连接用户、驱动业务增长的核心载体。然而,随着应用复杂度的日益提升,用户对于应用性能稳定性的期待也水涨船高。面对应用崩溃、卡顿、加载缓慢等频发问题,如何确保应用的流畅运行,成为产研团队亟待解决的关键挑战。在此背景下,友盟…

vite5-macos仿macOS网页osx管理系统|vue3+arcoDesign桌面os

基于vite5.xvue3arco-design原创自研网页版os管理框架ViteWebOS。 使用最新前端技术vite5vue3pinia2arcoDesignsortablejsecharts搭建网页pc版桌面os式后台管理系统解决方案。支持自定义桌面栅格布局引擎、可拖拽桌面图标、多屏分页管理、自定义桌面壁纸主题、毛玻璃虚化背景等…

【漏洞复现】E-Cology OA——WorkflowServiceXml——SQL注入

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 E-Cology OA协同商务系统是一款面向中大型组织的数字化办公产品…

LeNet卷积神经网络,手写数字识别

1. LeNet卷积神经网络的概念 先看看GPT的回答 有的资料中分层为 他们之间得差别就在于gpt的卷积层c5和上图中的全连接层1是同一种概念,因为该层使用的是5*5的卷积核,步长为一,根据公式可以算出输出的大小即是1X1的大小 训练参数是卷积核的大…

sentinel 服务流量控制 、熔断降级

1、什么是 sentinel,可以用来干什么 sentinel是用来在微服务系统中保护微服务对的作用,如何避免服务的雪崩、熔断、降级,说白了就是用来替换hystrix。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 官网:GitHub - alibaba/Se…

Python从0到100(四十三):数据库与Django ORM 精讲

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

08 capture软件新建原理图 09 原理图添加元器件 10 原理图信号连通 11 原理图电源和地连通

08 capture软件新建原理图 && 09 原理图添加元器件 && 10 原理图信号连通 && 11 原理图电源和地连通 第一部分 08 capture软件新建原理图第二部分 09 原理图添加元器件第三部分 10 原理图信号连通第四部分 11 原理图电源和地连通 第一部分 08 capture软…

服务器重启了之后就卡在某个页面了,花屏,如何解决??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

LC61----1374. 生成每种字符都是奇数个的字符串(字符串)---java版

1.题目 2.思路 (1)题目要生成每种字符是奇数个的字符串。 (2)所以直接用参数n%2来判断。 (3)返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串,则返回其中任意一个即可。 (4)感觉题目不是很规范哈…

云服务器部署vite前端项目

本篇博客将详述眨眼睛部署前端项目遇到的问题和解决方法 打包vite项目 输入指令会生成一个dist文件夹 npx vite build 如果我们使用liveServer打开这个html会发现报错 细看一下,是生成的路径都是以/开头,按理我们应该使用相对路径 当然它默认这么生成肯定…

lambda表达式,真题示例

Lambda表达式 它使代码更加简洁、易读,函数式编程增强了代码的表达力。常用于对集合的操作,如遍历、过滤、转换等。 Lambda表达式的形式: 参数, 箭头(->) 以及一个表达式: (String first, String sec…

如何找到最快解析速度的DNS

如何找到最快解析速度的DNS DNS,即域名系统(Domain Name System),是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网,而不用记住能够被机器直接读取的IP数串。 在浏览网页时,我们通常使用域名,而不是IP地址。当域名在…

虚拟机复制后网络不可用,报错“network.service - LSB: Bring up/down networking”

查询IP地址,eth33 没有显示IP地址 尝试重启,有报错,并且有提示,按照提示执行下看看 解决办法 chkconfig NetworkManager offsystemctl disable NetworkManager.serviceservice NetworkManager stopservice network restart 之后检…

堆(c++)

堆是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。 堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。 常见的堆有二叉堆、斐波那契堆等。 堆是非线性数据结构&#…

hugging face 使用教程———快速入门

概述 本篇存在的意义是快速介绍hugging face使用,梳理主要部件,梳理易混淆概念。原因是:目前hugging face的使用,官方放在了3个地方(参考链接部分):使用文档、NLP教程、Transformers git的readm…

洛谷P1910题解

思路 一个变型的DP 这道题增加了一个维度&#xff0c;其他地方和其他的01背包没有任何区别 只是状态转移方程由变成了 dp[j][k]max(dp[j][k],dp[j-c[i]][k-b[i]]a[i]); 还要注意一点&#xff0c;不能开三维的数组&#xff0c;会MLE。 代码 #include<bits/stdc.h>…

【llama3.1】ollama的使用--本地部署使用llama3.1模型

快速入门 安装完成ollama后,在命令行窗口输入 ollama run llama3 上图表示 Ollama 正在下载 llama3 任务所需的资源文件,并显示了当前的下载进度、速度和预计剩余时间。这是 Ollama 在准备运行 llama3 任务之前所需的步骤。 上面的步骤完成后,就可以在本地进行聊天了,…