go语言数据类型之字符串string
作者:奋斗的大橙子 发布时间:2024-04-26 17:19:52
标签:go,Golang,数据,字符串,string,类型
1.Go语言String的本质就是一个[]byte,所以他们之间可以互相转换,byte数组的长度就是字符串的长度。
func StringTest1() {
str := "Hello,World"
a := str[0]
b := str[1]
fmt.Printf("a=%c\n", a)
fmt.Printf("b=%c\n", b)
}
结果
a=H
b=e
str=Mello,World
2.字符串的值一旦指定,就不能进行修改。如果想修改,则可以先将字符串装换成slice。
//当试图去修改str时候
str[0] = 'M'
会出现如下错误提示
func StringTest1() {
str := "Hello,World"
a := str[0]
b := str[1]
fmt.Printf("a=%c\n", a)
fmt.Printf("b=%c\n", b)
var byteSlice []byte
byteSlice = []byte(str)
byteSlice[0] = 'M'
str = string(byteSlice)
fmt.Printf("str=%s\n", str)
}
结果
a=H
b=e
str=Mello,World
3.rune表示utf8的字符,一个rune字符由一个或多个byte组成。
rune和字符串长度之间是什么肥四?可以参考下面的例子:
func StringTest2() {
str2 := "Hello,世界"
var str2ByteSlice []byte
str2ByteSlice = []byte(str2)
var str2RuneSlice []rune
str2RuneSlice = []rune(str2)
fmt.Printf("strLen=%v\n",len(str2) )
fmt.Printf("str2ByteSlice=%v\n",len(str2ByteSlice) )
fmt.Printf("str2RuneSlice=%v\n",len(str2RuneSlice) )
for i:=0;i<len(str2RuneSlice);i++{
var b = str2RuneSlice[i]
fmt.Printf("str2RuneSlice[%d]=%c\n" ,i,b)
}
结果是什么?
strLen=12
str2ByteSlice=12
str2RuneSlice=8
从结果看到
①字符串的长度和byte切片的长度是一致的
②字符串的长度要比rune切片的长度大,说明一个中文字符需要占用多个byte,这里是就是3个,所以才有后面 str2RuneSlice = 8这个结果
进而我们可以遍历这个rune切片,追加下面代码
for i:=0;i<len(str2RuneSlice);i++{
var b = str2RuneSlice[i]
fmt.Printf("str2RuneSlice[%d]=%c\n" ,i,b)
}
结果
str2RuneSlice[0]=H
str2RuneSlice[1]=e
str2RuneSlice[2]=l
str2RuneSlice[3]=l
str2RuneSlice[4]=o
str2RuneSlice[5]=,
str2RuneSlice[6]=世
str2RuneSlice[7]=界
来源:https://www.cnblogs.com/dcz2015/p/10417198.html
0
投稿
猜你喜欢
- 一、安装pip install pymongo二、连接数据库import pymongo# 方式一client = pymongo.Mong
- 前言使用pandas进行数据分析的时候,我们经常需要对DataFrame的行或者列进行索引。使用pandas进行索引的方法主要有三种:直接使
- 在接口测试学习过程中,遇到了利用requests库进行文件下载和上传的问题。同样,在真正的测试过程中,我们不可避免的会遇到上传和下载的测试。
- 官网: https://matplotlib.org一、版本# 01 matplotlib安装情况 import matplotlib ma
- 本文是基于Apache poi类实现的批量导入读取Excel文件,所以要先引入Apache poi的依赖<dependency>
- 以上是效果图,本图表使用d3.js v4制作。图表主要功能是在六边形格子中显示数据,点击底部图标可以切换指定格子高亮显示,图表可以随浏览器任
- 第一种打开PyCharm, 然后PyCharm -> Preferences -> 在搜索框中输入Project Interpr
- Python生成随机验证码,需要使用PIL模块,具体内容如下安装:pip3 install pillow基本使用1. 创建图片from PI
- 一、MySQL删除外键格式:alter table 表名 drop foreign key 外键名;表名就是有外键存在的那个表。外键名可以通
- 本文实例讲述了Python快速排序算法。分享给大家供大家参考,具体如下:快速排序的时间复杂度是O(NlogN)算法描述:① 先从序列中取出一
- 关于 Settings Sync扩展:Settings Sync可以同步你当前的VSCode配置环境,当你需要在其它的电脑工作时,您不用重头
- Python 跟 Python3 完全就是两种语言1、 import caffe FAILED环境为 Ubuntu 16 cuda
- DNA序列ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT求其互补DNA序列。在
- 首先需要安装Win32-ODBC模块,具体的步骤如下:1:从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一
- 在这篇文章中,我将努力揭开Mobile Web开发的神秘面纱,换句话说,也就是为了移动设备上的用户体验可以被接受,代码得怎么设计。我将阐述“
- PyQt5数据拖曳Drag与Drop介绍为用户提供的拖曳功能很直观,在很对桌面应用程序中,复制或移动对象都可以通过拖曳来完成基于MIME类型
- 我简单的绘制了一下排序算法的分类,蓝色字体的排序算法是我们用python3实现的,也是比较常用的排序算法。Python3常用排序算法1、Py
- 窗口背景主要包括,背景色与背景图片,设置窗口背景有三种方法使用QSS设置窗口背景使用QPalette设置窗口背景实现PainEvent,使用
- 1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表
- 装饰器通用模型def wrapper(fn): def inner(*args, **kwargs):