[go语言]数据类型

目录

知识结构

整型、浮点型

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 float32var f2 float32var f3 float32f1 = 0.111111f2 = 0.222222f3 = 0.333333if f1+f2 == f3 {fmt.Println("ok")} else {fmt.Println("error")}
}

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

复数、布尔类型

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

1.复数

package mainimport "fmt"func main(){c := 5+2ifmt.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码值,也就是101fmt.Println(string(str4[0:5])) //左闭右开区间,取到qbcdefmt.Println(string(str4[5:]))  //fg
}

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

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

4.字符串的转换

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

	num1 := 100f1 := float64(num1)

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

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

Itoa将整型转换为字符串。

func main() {//int --> stringnum := 100str1 := strconv.Itoa(num)fmt.Printf("%s type is %T\n", str1, str1)//string --> intstr2 := "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.mzph.cn/news/632211.shtml

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

相关文章

MySQL三大日志

1. redo log 1.1 特点 InnoDB存储引擎独有物理日志,记录在数据页上做的修改让MySQL拥有了崩溃恢复能力,保证事务的持久性 1.2 刷盘时机 事务提交时log buffer 空间使用大约一半时事务日志缓冲区满InnoDB 定期执行检查点Checkpoint后台刷新线程&#…

短视频代运营抖音项目规划管理计划模板

【干货资料持续更新,以防走丢】 短视频代运营抖音项目规划管理计划模板 部分资料预览 资料部分是网络整理,仅供学习参考。 短视频代运营模板(完整资料包含以下内容) 目录 具体的表格设计和内容可能因不同的情况和需求而有所变…

移动端开发进阶之蓝牙通讯(四)

移动端开发进阶之蓝牙通讯(四) 在移动端开发实践中,可能会要求在不同的设备之间切换,从而提升用户体验; 或者为了提升设备的利用率,实现设备之间的连接和协同工作; 不得不通过多端连接,将多个设备连接在一起,实现设备之间的数据共享、远程控制等功能,根据具体的应用…

STC8H8K蓝牙智能巡线小车——1. 环境搭建(基于RTX51操作系统)

1. 基本介绍 开发环境准备:Keil uVision5 烧录软件:STC-ISP(V6.92A) 芯片: STC8H8K64U-45I-LQFP64 芯片引脚: 2.创建项目 打开Keil,点击【Project】,选择【new uVersion proje…

LeetCode刷题16:滑动窗口解决209. 长度最小的子数组

题目陈述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1&a…

【控制篇 / 分流】(7.4) ❀ 03. 对国内和国际IP网段访问进行分流 ❀ FortiGate 防火墙

【简介】公司有两条宽带用来上网,一条电信,一条IPLS国际专线,由于IPLS仅有2M,且价格昂贵,领导要求,访问国内IP走电信,国际IP走IPLS,那么应该怎么做? 国内IP地址组 我们已…

深度学习(2)--卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Networks)是一种深度学习模型或类似于人工神经网络的多层感知器,常用来分析视觉图像。 一.卷积网络基础概念 传统网络是一维的,而卷积网络是三维的。 例如32x32x3的图片,在传统网…

滑动窗口经典入门题-——长度最小子数组

文章目录 算法原理题目解析暴力枚举法的代码优化第一步初始化第二步right右移第三步left右移 滑动窗口法的代码 算法原理 滑动窗口是一种在序列(例如数组或链表)上解决问题的算法模式。它通常用于解决子数组或子字符串的问题,其中滑动窗口表示…

C#: form 窗体的各种操作

说明:记录 C# form 窗体的各种操作 1. C# form 窗体居中显示 // 获取屏幕的宽度和高度 int screenWidth Screen.PrimaryScreen.Bounds.Width; int screenHeight Screen.PrimaryScreen.Bounds.Height;// 设置窗体的位置 this.StartPosition FormStartPosition.M…

2024.1.17每日一题

LeetCode 2744.最大字符串配对数目 2744. 最大字符串配对数目 - 力扣(LeetCode) 题目描述 给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。 如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称…

【ubuntu】docker中如何ping其他ip或外网

docker中如何ping其他ip或外网 示例图: 运行下面命令: docker run -it --namehei busybox看情况需要加权限 sudo,即: sudo docker run -it --namehei busyboxping 外网 ping -c 4 www.baidu.comping 内网 ping -c 4 192.168.…

【多线程】认识Thread类及其常用方法

📄前言: 本文是对以往多线程学习中 Thread类 的介绍,以及对其中的部分细节问题进行总结。 文章目录 一. 线程的 创建和启动🍆1. 通过继承 Thread 类创建线程🍅2. 通过实现 Runnable 接口创建线程🥦3. 其他方…

java转义字符

//转义字符的使用 public class ChangeChar{//编写一个main方法public static void main(String[] args){// \t :一个制表位,实现对齐的功能System.out.println("北京\t天津\t上海");// \n :换行符,实现换行System.out.println("jack\nsm…

Python-基础篇-类与对象/面向对象程序设计

文章目录 思维导图是何物类定义类📚 class类的成员📚类的继承性📚封装性📚多态性 对象面向对象📚创建对象📚销毁对象📚 类和对象关系必背必记专业英语学习角 思维导图 是何物 类 “类”是物以…

【算法实验】实验4

实验4-1 01背包 【问题描述】给定一个容量为C的背包,现有n个物品,每个物品的体积分别为s1,s2...sn,价值分别为v1,v2...vn。每个物品只能放入一次。背包最多能装入价值为多少的物品。 【输入形式】输入的第1行包含2个整数C和n,分别表示背包容…

C++大学教程(第九版)5.18进制表

目录 题目 代码 运行截图 题目 (进制表)编写一个程序要求打印一张表,内容是1~256范围内每个十进制数对应的二进制、八进制和十六进制形式。如果还不熟悉这些计数系统,可先阅读附录 D。提示:可以使用流操纵符dec、oct 和 hex来…

算法笔记 #3

2024年1月18日 Q1:搜索二叉树 A:查找,左子树比根几点小,右子树比根大。 删除:1)搜索删除的目标节点,记录其父节点; 2)左右孩子都为空,直接删掉;…

Spring+SpringMVC+Mybatis进行项目的整合

Spring SpringMVCM Mybatis 整合 一、 通过idea创建maven工程 二、 引入依赖项以及导入mybatis逆向工程的插件 将如下的文件替换所在工程的pom文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4…

实验二 体系结构

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

【Leetcode】277.搜寻名人

一、题目 1、题目描述 假设你是一个专业的狗仔,参加了一个 n 人派对,其中每个人被从 0 到 n - 1 标号。在这个派对人群当中可能存在一位 “名人”。所谓 “名人” 的定义是:其他所有 n - 1 个人都认识他/她,而他/她并不认识其他任何人。 现在你想要确认这个 “名人” 是…