当前位置: 首页 > news >正文

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内部得到了广泛应用,并且在全球范围内被广泛采用,成为一种流行的编程语言。

相关文章:

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

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

高并发场景下,系统的保护机制

伴随着分布式,微服务项目的快速发展。各个微服务的调用和通讯难免会出现依赖关系,如果上游服务在依赖下游服务的时候下游服务出现了故障从而导致下游服务的不可用,进一步导致了上游的服务被拖垮,就会发生服务雪崩,故障…...

服务器构建私有npm库(Docker + Verdaccio)

npm官网有时候因为网络原因包推不上去,那就简单构建个私有库 私有库不会被共享,且配置不需要太高1h2G就行 1.需要安装Docker,这个跳过了 2.生成配置文件 mkdir /home/verdaccio cd /home/verdaccio mkdir conf && mkdir storage &am…...

LabVIEW做二次开发时应该注意哪些方面?

在使用LabVIEW进行二次开发时,以下几个方面需要特别注意: 需求明确化: 确认并详细记录客户的需求,明确系统的功能、性能、可靠性等要求。制定详细的需求文档,并与客户反复确认,避免后期的需求变更和误解。 …...

docker配置上网代理获取镜像

一、添docker子配置档设置 1、创建目录 mkdir /etc/systemd/system/docker.service.d 2、创建http-proxy.conf文件,增加以下内容 cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF [Service] Environment“HTTP_PROXYhttp://192.168.0.2:8118…...

SqlSugar删除没有定义主键的实体类对应的数据库表数据

一般而言&#xff0c;使用SqlSugar的DbFirst功能创建数据库表实体类时&#xff0c;如果数据库表有主键&#xff0c;生成的实体类对应属性也会标识为主键&#xff0c;如下图所示。   但有时候生成的实体类没有自动配置主键&#xff0c;这时可以通过以下方式进行删除操作&…...

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

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

Redis 7.x 系列【30】集群管理命令

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 集群信息2.1 CLUSTER INFO 3. 节点管理3.1 CLUSTER MYID3.2 CLUSTER NODES3…...

将YOLOv8模型从PyTorch的.pt格式转换为TensorRT的.engine格式

TensorRT是由NVIDIA开发的一款高级软件开发套件(SDK)&#xff0c;专为高速深度学习推理而设计。它非常适合目标检测等实时应用。该工具包可针对NVIDIA GPU优化深度学习模型&#xff0c;从而实现更快、更高效的运行。TensorRT模型经过TensorRT优化&#xff0c;包括层融合(layer …...

Hello SLAM(在Linux中实现第一个C++程序)

首先需要安装vim编辑器&#xff0c;输入命令 sudo apt install vim 在Ubuntu上安装好vim编辑器后&#xff0c;创建路径&#xff08;/home/slambook/ch2&#xff09;&#xff0c;在该路径下创建一个cpp文档&#xff08;touch hello.c&#xff09;&#xff0c;通过vim编辑器进行…...

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此&#xff0c;一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中&#xff0c;研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…...

C++ 鼠标轨迹API【神诺科技SDK】

一.鼠标轨迹模拟简介 传统的鼠标轨迹模拟依赖于简单的数学模型&#xff0c;如直线或曲线路径。然而&#xff0c;这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现&#xff0c;使得神诺科技 能够通过深度学习技术&#xff0c;学习并模拟更自然的鼠标移动行为。 二.…...

设计模式|观察者模式

观察者模式是一种行为设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。当主题对象发生变化时&#xff0c;它的所有观察者都会收到通知并更新。观察者模式常用于实现事件处理系统、发布-订阅模式等。在项目中&#xff0c…...

python自动化运维 通过paramiko库和time库实现服务器自动化管理

目录 一.前言 二. 代码实现以及解析 2.1导入必要的库 2.2定义服务器信息 2.3创建 SSH 客户端连接函数 2.4执行远程命令函数 2.5获取系统信息函数 2.6重启服务函数 2.7 主函数 三.致谢 一.前言 在数字化时代&#xff0c;IT 基础设施的规模和复杂性不断增长&am…...

HTML常用的转义字符——怎么在网页中写“<div></div>”?

一、问题描述 如果需要在网页中写“<div></div>”怎么办呢&#xff1f; 使用转义字符 如果直接写“<div></div>”&#xff0c;编译器会把它翻译为块&#xff0c;类似的&#xff0c;其他的标签也是如此&#xff0c;所以如果要在网页中写类似于“<div…...

shell-awk文本处理工具

1、awk概述 AWK 是一种处理文本文件的语言&#xff0c;是一个强大的文本分析工具。 它是专门为文本处理设计的编程语言&#xff0c;也是行处理软件&#xff0c;通常用于扫描、过滤、统计汇总工作 数据可以来自标准输入也可以是管道或文件 在 linux 上常用的是 gawk,awk …...

如何在测试中保护用户隐私!

在当今数据驱动的时代&#xff0c;用户隐私保护成为了企业和开发团队关注的焦点。在软件测试过程中&#xff0c;处理真实用户数据时保护隐私尤为重要。本文将介绍如何在测试中保护用户隐私&#xff0c;并提供具体的方案和实战演练。 用户隐私保护的重要性 用户隐私保护不仅是法…...

ARCGIS PRO DSK GraphicsLayer创建文本要素

一、判断GraphicsLayer层【地块注记】是否存在&#xff0c;如果不存在则新建、如果存在则删除所有要素 Dim GraphicsLayer pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault() 获取当前map对象中的GetLayer图层 Await Queue…...

看板项目之vue代码分析

目录&#xff1a; Q1、vue项目怎么实现的输入localhost&#xff1a;8080就能自动跳到index页面Q2、组合饼状图如何实现Q3、vue项目如何实现环境的切换Q4、vue怎么实现vue里面去调用js文件里面的函数 Q1、vue项目怎么实现的输入localhost&#xff1a;8080就能自动跳到index页面 …...

lua 游戏架构 之 游戏 AI (七)ai_dead

定义一个名为ai_dead的类&#xff0c;继承自ai_base类。这个类用于处理游戏中AI在死亡状态下的行为逻辑。以下是对代码的具体解释&#xff1a; 1. **引入基类**&#xff1a; - 使用require函数引入ai_base类&#xff0c;作为基础类。 2. **定义ai_dead类**&#xff1a; …...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...