Go 数字类型

一、数字类型

1、Golang 数据类型介绍
  1. Go 语言中数据类型分为:基本数据类型和复合数据类型
  2. 基本数据类型有:
    1. 整型、浮点型、布尔型、字符串
  3. 复合数据类型有:
    1. 数组、切片、结构体、函数、map、通道(channel)、接口
2、整型分为两大类
  • 有符合整型按长度分为:int8、int16、int32、int64
  • 对应的无符合整型:uint8、uint16、uint32、uint64

  • 关于字节:
    • 字节也叫 Byte,是计算机数据的基本存储单位。8bit(位)=1byte(字节)1024byte(字节)=1kb
    • 1024KB=1MB 1024MB=1GB
    • 1024GB=1TB。在电脑里一个中文字是占两个字节的
3、unsafe.Sizeof
  • unsafe.Sizeof(n1)是 unsafe 包的一个函数。可以返回n1 变量占用的字节数
package main
import ("fmt""unsafe"
)
func main() {var a int8 = 124fmt.Printf("%T\n", a)       // int8fmt.Println(unsafe.Sizeof(a))      // 1 (表示占用1个字节,也就是8 byte)
}
4、int 不同长度直接的转换 
package  mainimport ("fmt"
)func main(){var num1 int8num1 := 127num2 := int32(num1)    //讲 num1 类型转换程 int32 并赋值给 num1fmt.Printf("值:%v 类型%T",num2,num2) //值:127 类型 int32
}
5、浮点型
  • Go语言支持两种浮点型数:float32和float64
package mainimport("fmt""math"
)func main(){fmt.Printf("%f\n",math.Pi)    //3.141593(默认保留6位小数)fmt.Printf("%.2f\n",math.Pi)    //3.14(保留2位小数)
}
6.reflect.TypeOf查看数据类型
package mainimport("fmt""reflect"
)func main(){c := 10fmt.PrintIn(reflect.TypeOf(c))    //int
}

二、int互转

1、int常用转换
package mainimport("fmt""strconv"
)func main(){//string到intintV,_ := strcomv.Atoi("123456")// string到int64int64V,_ := strconv.ParseInt("123456",10,64)//int到stringstrS := strconv.Itoa(123)//int64到stringvar tmp int64 =123str64S:=strconv.FormatInt(tmp,10)fmt.Printf("%T--%T--%T--%T",intV,int64V,strS,str64S)//int--int64--string-string
}
2、int8转int16
package  mainimport "fmt"func main(){var a int8 = 20var b int16 =40var c int16(a) + b    //要转换成形同类型才能运行fmt.Printf("值:%V--类型%T",c,c)     //值:60--类型 int16}
3、int16转float32
package mainimport "fmt"func main(){var a float32 =3.2var b int16 =6var c = a + float32(b)fmt.Printf("值:%V--类型%T",c,c)    //值:9.2--类型float32}
4、math.Sqrt强转
package mainimport("fmt""math"
)func main(){var a,b =3,4var c int//math.Sqrt()接收的参数是float64类型,需要强制转换c = int(math.Sqrt(float64(a*a+b*b)))fmt.PrintIn(c)    // 5
}

三、int与str转换

1、int与str转换
package mainimport("fmt""strconv"
)func main(){//2.1 int64转strvar num2 int64 = 123456str2 := strconv.FormatInt(num2,10)fmt.Printf("%V--%T\n",str2,str2)    //12345--string//2.2 str转int64v1,_ := strconv.ParseFloat(str2,64)fmt.Printf("%v---%T\n",v1,v1)      // 123456---float64
}
2、str与int64转换
package main
import ("fmt""strconv"
)func main() {//1.1 int转stingnum1 := 123456str1 := strconv.Itoa(num1)fmt.Printf("%v---%T \n",str1,str1)  // 123456---string// 1.2 sting转int_int, err := strconv.Atoi(str1)fmt.Println(_int,err)  // 123456 <nil>fmt.Printf("%v---%T\n",_int,_int)   // 123456---int//2.1 int64转strvar num2 int64 = 123456str2 := strconv.FormatInt(num2, 10)fmt.Printf("%v---%T \n",str2,str2)  // 123456---string//2.2 str转int64v1, _ := strconv.ParseFloat(str2, 64)fmt.Printf("%v---%T\n",v1,v1)      // 123456---float64
}

四、布尔值

  • Go 语言中以 bool 类型进行声明布尔型数据,布尔型数据只有 true(真)和 false(假)两个值。

  • 注意:

    • 布尔类型变量的默认值为 false。

    • Go 语言中不允许将整型强制转换为布尔型

    • 布尔型无法参与数值运算,也无法与其他类型进行转换

package main
import ("fmt""unsafe"
)
func main() {var b = truefmt.Println(b, "占用字节:", unsafe.Sizeof(b))  // true 占用字节: 1
}

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

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

相关文章

什么是 dropblock

大家好啊&#xff0c;我是董董灿。 之前介绍过 dropout 算法&#xff0c;它在训练神经网络中&#xff0c;可以随机丢弃神经元&#xff0c;是一种防止网络过拟合的方法。 但是在卷积神经网络中&#xff0c;dropout 的表现却不是很好&#xff0c;于是研究人员又搞了一个“结构化…

Python列表:操作与实例分析,你值得一看!

Python列表是一种重要的数据结构&#xff0c;它允许您存储和管理多个数据项。本文将深入探讨Python列表的操作&#xff0c;以及通过具体实例分析如何使用它们&#xff0c;以帮助您更好地理解和优化您的代码。 什么是Python列表&#xff1f; Python列表是一种有序、可变的数据结…

基于51单片机的全自动洗衣机proteus仿真设计

标题目录 &#x1f4ab;51单片机全自动洗衣机proteus仿真设计&#x1f4ab;设计介绍&#x1f4ab;仿真图电动机驱动模块电路设计电源模块电路设计控制按键进水阀和排水阀控制继电器 &#x1f4ab;程序设计main函数 &#x1f4ab;设计报告&#x1f4ab;资料清单&&下载链…

PC行内编辑

点击编辑&#xff0c;行内编辑输入框出现&#xff0c;给列表的每条数据定义编辑标记&#xff0c;最后一定记得 v-model双向绑定&#xff0c;使数据回显。 步骤&#xff1a; 1、给行数据定义编辑标记 2、点击行编辑标记&#xff08;isedit&#xff09; 3、插槽根据标记渲染表单 …

探究Kafka原理-6.CAP理论实践

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44…

Transformer中的多头注意力机制-为什么需要多头?

Transformer为什么使用多头注意力机制呢&#xff1f; 多头可以学习到不同维度的特征和信息。为什么可以学习到不同维度的信息呢&#xff1f; 答案是&#xff1a;多头注意力机制的组成是有单个的self attention&#xff0c;由于self attention通过产生QKV矩阵来学习数据特征&a…

leetCode 1026. 节点与其祖先之间的最大差值 + 递归

1026. 节点与其祖先之间的最大差值 - 力扣&#xff08;LeetCode&#xff09; 给定二叉树的根节点 root&#xff0c;找出存在于 不同 节点 A 和 B 之间的最大值 V&#xff0c;其中 V |A.val - B.val|&#xff0c;且 A 是 B 的祖先。&#xff08;如果 A 的任何子节点之一为 B&am…

网络和Linux网络_5(应用层)HTTP协议(方法+报头+状态码)

目录 1. HTTP协议介绍 1.1 URL介绍 1.2 urlencode和urldecode 1.3 HTTP协议格式 1.4 HTTP的方法和报头和状态码 2. 代码验证HTTP协议格式 HttpServer.hpp 2.2 html正式测试 Util.hpp index.html 2.3 再看HTTP方法和报头和状态码 2.3.1 方法_GET和POST等 2.3.2 报头…

SpringBoot——国际化

优质博文&#xff1a;IT-BLOG-CN 一、Spring 编写国际化时的步骤 【1】编写国际化配置文件&#xff1b; 【2】使用ResourceBundleMessageSource管理国际化资源文件&#xff1b; 【3】在页面使用ftp:message取出国际化内容&#xff1b; 二、SpringBoot编写国际化步骤 【1】创…

软件工程期末复习(选择+填空+判断)

文章目录 软件工程期末复习一、 选择题 软件工程期末复习 一、 选择题 1.“软件危机”的表现不包括&#xff1a;&#xff08;c&#xff09; A、软件产品不能按期交付 B、用户对“已完成的”软件产品时常不满意 C、程序员越来越供不应求 D、软件项目难以管理&#xff0c;维护困…

东胜物流软件 SQL注入漏洞复现

0x01 产品简介 东胜物流软件是一款致力于为客户提供IT支撑的 SOP&#xff0c; 帮助客户大幅提高工作效率&#xff0c;降低各个环节潜在风险的物流软件。 0x02 漏洞概述 东胜物流软件 TCodeVoynoAdapter.aspx、/TruckMng/MsWlDriver/GetDataList、/MvcShipping/MsBaseInfo/Sav…

CSS3制作3D爱心动画

1、什么是CSS css&#xff0c;即层叠样式表的简称&#xff0c;是一种标记语言&#xff0c;有浏览器解释执行用来使页面变得更美观。 2、选择器 css3中新增了一些选择器&#xff0c;如下&#xff1a; 3、新样式 边框 css3新增了三个边框属性&#xff0c;分别是&#xff1a; bo…

linux之下安装 nacos

1 下载地址 也可使用在线下载wget https://github.com/alibaba/nacos/releases/download/1.4.6/nacos-server-1.4.6.tar.gzTags alibaba/nacos GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud nativ…

android trace文件的抓取与查看方法

本地手机抓取trace 解压android trace文件的抓取与查看方法 找到config.pbtx文件&#xff0c;连接手机push进去 # push config.pbtx &#xff0c;/data/local/tmp/为自定义push到的目录 adb push config.pbtx /data/local/tmp/ adb shell # 抓取trace&#xff0c; /data/loc…

【MyBatisPlus】通俗易懂 快速入门 详细教程

目录 学习目标 一、MyBatisPlus简介 1. 入门案例 问题导入 1.1 SpringBoot整合MyBatisPlus入门程序 ①&#xff1a;创建新模块&#xff0c;选择Spring初始化&#xff0c;并配置模块相关基础信息 ②&#xff1a;选择当前模块需要使用的技术集&#xff08;仅保留JDBC&…

bodymovin:AE动画导出为JSONforMac/win中文版下载

对于动画制作爱好者和专业设计师来说&#xff0c;Adobe After Effects&#xff08;AE&#xff09;是一个强大的工具&#xff0c;可以创造出惊人的动画效果。然而&#xff0c;将这些动画导出为可交互的格式一直是一个挑战。现在&#xff0c;有了bodymovin&#xff0c;你可以轻松…

[原创][1]探究C#多线程开发细节-“Thread类的简单使用“

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…

搜索百度可以直接生成代码拉

先看效果图&#xff1a; 使用示例&#xff1a; 比如我要搜索“JS取一个数在两个数更近”的方法&#xff0c;直接搜“JS取一个数在两个数更近”&#xff0c;点击百度一下&#xff0c;就会出现想要的代码&#xff0c;如上图。

基于OpenCV+YOLOv5实现车辆跟踪与计数(附源码)

导 读 本文主要介绍基于OpenCVYOLOv5实现车辆跟踪与计数的应用&#xff0c;并给出源码。 资源下载 基础代码和视频下载地址&#xff1a; https://github.com/freedomwebtech/win11vehiclecount main.py代码:​​​​​​​ import cv2import torchimport numpy as npfrom tr…

Kotlin学习之集合

原文链接 Kotlin Collections 现代的软件一般比较复杂&#xff0c;程序语言中的基本数据类型往往不能满足需要&#xff0c;除了基本的数据类型以外&#xff0c;还有对象的容器也非常的重要&#xff0c;比如线性容器&#xff08;数组&#xff0c;列表和Set&#xff09;和二维容…