[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.hqwc.cn/news/413338.html

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

相关文章

AI工具的使用和分析

人工智能(AI)工具已经成为了现代社会不可或缺的一部分,它们的应用范围涵盖了各行各业,为人类带来了极大的便利和效率提升。随着技术的不断发展,AI工具的使用和分析也变得越来越重要。本文将探讨AI工具的使用和分析&…

查看神经网络中间层特征矩阵及卷积核参数

可视化feature maps以及kernel weights,使用alexnet模型进行演示。 1. 查看中间层特征矩阵 alexnet模型,修改了向前传播 import torch from torch import nn from torch.nn import functional as F# 对花图像数据进行分类 class AlexNet(nn.Module):d…

day2:TCP、UDP网络通信模型

思维导图 机械臂实现 #include <head.h> #define SER_POTR 8899 #define SER_IP "192.168.125.223" int main(int argc, const char *argv[]) {//创建套接字int cfdsocket(AF_INET,SOCK_STREAM,0);if(cfd-1){perror("");return -1;}//链接struct so…

书生·浦语大模型--第三节课笔记--基于 InternLM 和 LangChain 搭建你的知识库

文章目录 大模型开发范式RAGLangChain框架&#xff1a;构建向量数据库构建检索问答链优化建议web 部署 实践部分环境配置 大模型开发范式 LLM的局限性&#xff1a;时效性&#xff08;最新知识&#xff09;、专业能力有限&#xff08;垂直领域&#xff09;、定制化成本高&#…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-4 label

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>label</title> </head><body> 性别: <label for"male">男</label> <input type"radio" name"sex&quo…

vue2踩坑之项目:vue2+element实现前端导出

1.安装插件依赖 npm i --save xlsx0.17.0 file-saver2.0.5 2.单页面引入 前端导出插件 import FileSaver from "file-saver"; import * as XLSX from "xlsx"; //html <el-form-item><el-button type"primary" plain size"mini&quo…

三角形任意一外角大于不相邻的任意一内角

一.代数证明 ∵ 对与△ A C B 中 ∠ c 外接三角形是 ∠ B C D ∵对与△ACB中∠c外接三角形是∠BCD ∵对与△ACB中∠c外接三角形是∠BCD ∴ ∠ B C D π − ∠ C ∴∠BCD\pi-∠C ∴∠BCDπ−∠C ∵ ∠ A ∠ B ∠ C π ∵∠A∠B∠C\pi ∵∠A∠B∠Cπ ∴ ∠ B C D ∠ A ∠…

我在Vscode学OpenCV 图像处理五(直方图处理)

直方图是一种统计图&#xff0c;显示了图像中每个灰度级别&#xff08;或颜色通道&#xff09;的像素数量。通过分析图像的直方图&#xff0c;可以获得关于图像对比度、亮度和颜色分布等方面的重要信息。 直方图处理 一、直方图的意义二、绘制直方图2.1 直接使用Matplotlib.pyp…

关于Access中列的冻结的知识,看这篇就够了

在Microsoft Access中&#xff0c;有一个名为“冻结”的功能&#xff0c;使用户可以在滚动到另一个区域时保持数据表的某个区域可见。 可以使用冻结功能冻结数据表中的表、查询、窗体、视图或存储过程中的一个或多个字段。你冻结的字段将移动到数据表的左侧位置。 如何在Micr…

【云原生系列】容器安全

容器之所以广受欢迎&#xff0c;是因为它能简化应用或服务及其所有依赖项的构建、封装与推进&#xff0c;而且这种简化涵盖整个生命周期&#xff0c;跨越不同的工作流和部署目标。然而&#xff0c;容器安全依然面临着一些挑战。虽然容器有一些固有的安全优势&#xff08;包括增…

滚动菜单ListView

activity_main.xml <include layout"layout/title"/> 引用上章自定义标题栏 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app&qu…

PGSQL主键序列

PostgreSQL和 MySQL数据库还是有一定的区别。 下面了解一下 PGSQL的主键序列。 一、主键 1、系统自带主键序列 在 PostgreSQL 中&#xff0c;GENERATED BY DEFAULT 和 GENERATED ALWAYS 是用于定义自动生成的列&#xff08;Generated Column&#xff09;的选项。一般可作用…