当前位置: 首页 > 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; …...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...