[go语言]数据类型

news2024/12/24 8:08:19

目录

知识结构

整型、浮点型

1.整型

2.浮点型

复数、布尔类型

1.复数

2.布尔类型

字符与字符串

1.字符串的格式化

2.字符串的截取

3.格式化好的字符串赋值给量

4.字符串的转换

5.strings包


知识结构

整型、浮点型

1.整型

在Go语言中,整型数据是一种基本的数据类型,用于表示整数。Go语言提供了多种整型数据类型,包括有符号和无符号的整型,以及不同大小的整型。

以下是Go语言中常用的整型数据类型:

int:有符号整数类型,根据平台和编译器,其大小可能有所不同。在大多数现代系统上,int的大小为32位或64位。

int8:有符号8位整数类型

int16:有符号16位整数类型

int32:有符号32位整数类型

int64:有符号64位整数类型

uint:无符号整数类型,大小与int相同,但只能表示非负整数。

uint8:无符号8位整数类型

uint16:无符号16位整数类型

uint32:无符号32位整数类型

uint64:无符号64位整数类型

在进行整形数据的处理时,需要选择合适的整型类型进行数据处理;

关于不同进制数的表示如下:

2.浮点型

在Go语言中,浮点型数据用于表示带有小数点的数值。Go语言提供了两种类型的浮点数:float32float64

  1. float32:32位单精度浮点数,其范围约为±1.18E-38到±3.4E+38,精度约为7位小数。
  2. float64:64位双精度浮点数,也称为double,其范围约为±2.23E-308到±1.80E+308,精度约为15位小数。

浮点型数据最主要的特点就是:不精确:

package main
import "fmt"

// 只有同类型才能参与运算;位数不同也不能匹配
func main() {
	//浮点类型 --- 不精确的,二进制存储小数位
	//小数点不能精确表示
	var f1 float32
	var f2 float32
	var f3 float32
	f1 = 0.111111
	f2 = 0.222222
	f3 = 0.333333
	if f1+f2 == f3 {
		fmt.Println("ok")
	} else {
		fmt.Println("error")
	}
}

该代码运行的结果就是“error”,因为浮点型数据在计算机中的表示采用的是IEEE 754标准,该标准规定了32位单精度浮点数和64位双精度浮点数的表示方法。理论上,32位浮点数最多能表示的数是2^32个,而小数却有无数个,因此,无法精确表示所有的小数。

复数、布尔类型

这两个数据类型就简单了解即可,下面是相关演示

1.复数

package main

import "fmt"

func main(){
    c := 5+2i
    fmt.Println(c)
    fmt.Printf("c type is %T\n",c)
}

这种带了“i”的就是复数,所以展现的类型是complex128,也就是复数形式。

2.布尔类型

bool类型默认取值为false:

字符与字符串

1.字符串的格式化

%d十进制整数输出
%x十六进制整数输出
%T输出数据类型
%c转换成字符输出
%f浮点类型数输出
%.2f保留两位小数输出
%%输出百分号本身
%s输出字符串

2.字符串的截取

pacakge main
import "fmt"

func main() {
	str4 := "abcdefg"
	fmt.Println(str4[4])           //取到下标为4的字符,即e,输出e的ASCII码值,也就是101
	fmt.Println(string(str4[0:5])) //左闭右开区间,取到qbcde
	fmt.Println(string(str4[5:]))  //fg
}

3.格式化好的字符串赋值给量

fmt.Sprintf 是 Go 语言中的一个函数,它用于将格式化的数据转换成字符串。这个函数是 fmt 包的一部分,通常用于构建字符串。

4.字符串的转换

int-->float:直接用float32()就可以:

	num1 := 100
	f1 := float64(num1)

但是字符串的转换就要用到一个包:strconv

Atoi将字符串转换为整型数,要保证这个字符串是可以转换的,比如“100”“50”这样的字符串。

Itoa将整型转换为字符串。

func main() {
	//int --> string
	num := 100
	str1 := strconv.Itoa(num)
	fmt.Printf("%s type is %T\n", str1, str1)
	//string --> int
	str2 := "100"
	num2, _ := strconv.Atoi(str2)
	fmt.Printf("num2 type is %T\n", num2)
}

5.strings包

string包
contains:判断一个字符串s是否包含substr
fmt.Println(strings.Contains("abc", "a"))
count:计算substr在s中出现多少次
fmt.Println(strings.Count("aabbccdd", "ab"))
HasPrefix(s,prefix) 判断字符串s是否以prefix开头
HasSuffix(s,suffix) 判断字符串s是否以suffix结尾
Index(s,substr) 判断substr在s字符串中第一次出现的下标位置,如果没有找到就返回-1
Replace(s,old,new,n) 将s字符串中原来的old替换为新的new,替换n次,n为-1表示全部替换
Tolower(s) 将一个字符串全部转化为小写
ToUpper(s) 将一个字符串全部转化为大写
Split("ab:xy:mn",":")  :按照冒号将字符串进行切割   //[ab xy mn]

使用strings包的内容可以快速对字符串做出处理。

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

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

相关文章

零基础学Python(5)— 基本数据类型

前言:Hello大家好,我是小哥谈。在内存中存储的数据可以有多种类型。例如:一个人的姓名可以用字符型存储,年龄可以使用数值型存储,婚姻状况可以使用布尔型存储。这里的字符型、数值型、布尔型都是Python语言中提供的基本…

MyBatis的逆向工程的创建,generator插件的使用和可能出现的一些问题,生成的实体类多出.java 1 .java 2这种拓展文件的处理方案

目录 创建逆向工程的步骤 ①添加依赖和插件 ②创建MyBatis的核心配置文件 ③创建逆向工程的配置文件 ④执行MBG插件的generate目标 数据库版本8有可能出现的问题: 1、生成的实体类多了.java 1 .java 2的拓展文件... 2、生成的属性与表中字段不匹配&#xff…

orm-04-Spring Data JPA 入门介绍

拓展阅读 The jdbc pool for java.(java 手写 jdbc 数据库连接池实现) The simple mybatis.(手写简易版 mybatis) Spring Data JPA Spring Data JPA,作为更大的 Spring Data 家族的一部分,使得基于 JPA 的仓库实现变得更加容易。…

微信小程序首页、界面布局、功能简洁(示例三)

微信小程序首页界面布局、页面简洁,功能简单 直接上具体代码: 1、js代码 Page({/*** 页面的初始数据*/data: {imgList: [../../images/demo.jpg, ../../images/demo.jpg, ../../images/demo.jpg],navList: [{src: ../../images/nav1.png,title: 菜单一}…

硬件基础:组合逻辑电路

什么是组合逻辑电路 组合逻辑电路是由一些基本的逻辑门电路组成的,没有反馈,输出仅取决于输入。 组合逻辑电路是数字逻辑电路中一种重要的电路类型,它是由多个逻辑门(例如与门、或门、非门等)组成的电路。组合逻辑电路…

vue3和vite项目在scss中因为本地图片,不用加~

看了很多文章说要加~,真的好坑哦,我的加了~反而出不来了: 304 Not Modified 所以需要去掉~: /* 默认dark主题 */ :root[themered] {--bg-color: #0d1117;--text-color: #f0f6fc;--backImg: url(/assets/images/redBg.png); }/* …

Go语言学习笔记:基础语法和类型

Go语言学习笔记:基础语法和类型 目录 Go语言学习笔记:基础语法和类型学习路线前言变量声明常量数据类型布尔型(Boolean)整型(Integer)浮点型(Floating point)复数型(Comp…

解读 EventBridge Transform:数据转换和处理的灵活能力

云布道师 阿里云 EventBridge 提供了强大而灵活的事件总线服务,它可以连接应用程序、阿里云云服务和阿里云 Serverless 服务来快速构建 EDA(Event-driven Architectures)事件驱动架构,驱动应用与应用,应用与云的连接。…

从一到无穷大 #21 从基于多数据模型分析负载的Benchmark讨论多模数据库的发展方向

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言M2Bench测试结果从Lindorm看待多模的发展方向总结 引言 《M2Bench: A Database …

echarts:折线图的常用操作

文章目录 背景基础折线图添加一些样式区域高亮 背景 本文将带大家一步一步的熟悉折线图相 API,关于如何初始化,可以看我这篇文章 echars:图表中核心的概念,本文只讲核心配置。 基础折线图 option {xAxis: {type: category,// …

VUE+Vis.js鼠标悬浮title提前显示BUG解决方法

在使用VUEVis.js做拓扑图,利用鼠标悬浮放在图标展示设备信息时,发现鼠标一放在图标上面时,标题表会提前在放置的元素下显示,鼠标再放到图标上去元素才会隐藏变成悬浮状态 解决方法: 添加一个div元素,设置v…

从零开始训练 YOLOv8最新8.1版本教程说明(包含Mac、Windows、Linux端 )同之前的项目版本代码有区别

从零开始训练 YOLOv8 - 最新8.1版本教程说明 本文适用Windows/Linux/Mac:从零开始使用Windows/Linux/Mac训练 YOLOv8 算法项目 《芒果 YOLOv8 目标检测算法 改进》 适用于芒果专栏改进 YOLOv8 算法 文章目录 官方 YOLOv8 算法介绍改进网络代码汇总第一步 配置环境1.1 系列配…

01、领域驱动设计:微服务设计为什么要选择DDD总结

目录 1、前言 2、软件架构模式的演进 3、微服务设计和拆分的困境 4、为什么 DDD适合微服务 5、DDD与微服务的关系 6、总结 1、前言 我们知道,微服务设计过程中往往会面临边界如何划定的问题,不同的人会根据自己对微服务的理 解而拆分出不同的微服…

搭建《幻兽帕鲁》服务器需要怎样配置的云服务器?

随着《幻兽帕鲁》这款游戏的日益流行,越来越多的玩家希望能够在自己的服务器上体验这款游戏。然而,搭建一个稳定、高效的游戏服务器需要仔细的规划和配置。本文将分享搭建《幻兽帕鲁》服务器所需的配置及搭建步骤,助力大家获得更加畅快的游戏…

STM32 USB DFU固件升级的设计与实现

STM32微控制器支持通过USB DFU(Device Firmware Upgrade)协议进行固件升级,这使得设备可以在不需要特殊的调试工具或编程器的情况下,通过USB接口实现固件的更新。在本文中,我们将介绍如何设计和实现STM32 USB DFU固件升…

呼叫中心的管理流程

很难想象同一个客户不同时间来电购买同样的产品会得到完全不同的服务过程。许多呼叫中心都有这种“无章可循”或“有章不循”的现象,这也是导致呼叫中心低效率、高成本、高投诉的重要原因,同时也是无法建立良好客户体验的原因之一。呼叫中心流程管理的目…

yarn集群HDFS datanode无法启动问题排查

一、问题场景 hdfs无法访问,通过jps命令查看进程,发现namenode启动成功,但是所有datanode都没有启动,重启集群(start-dfs.sh)后仍然一样 二、原因分析 先看下启动的日志有无报错。打开Hadoop的日志目录 …

《WebKit 技术内幕》学习之五(3): HTML解释器和DOM 模型

3 DOM的事件机制 基于 WebKit 的浏览器事件处理过程:首先检测事件发生处的元素有无监听者,如果网页的相关节点注册了事件的监听者则浏览器会将事件派发给 WebKit 内核来处理。另外浏览器可能也需要处理这样的事件(浏览器对于有些事件必须响应…

dayjs挂载到vue3全局属性上面

首先就是安装dayjs npm install dayjs 打开main.ts //dayjs import * as dayjs from dayjs //引入插件 import * as relativeTime from dayjs/plugin/relativeTime.js import * as isLeapYear from dayjs/plugin/isLeapYear // 导入插件 import dayjs/locale/zh-cn // 导入本…

“史上最大数据泄露事件”是真还是假?

昨(2024年1月23日)天深夜,腾迅网>观点新媒体官方账号发布的《网络安全公司警告史上最大数据泄露事件 腾讯或占15亿条》这一消息,真让人闻之顿生石破惊天之感!尤其是笔者,因长期被网络假消息欺骗&#xf…