学习Golang语言(4):类型--字符串

【Golang学习之旅】Go 语言数据类型详解(string、slice、map等) ✅ 适合人群:Golang 新手 | 后端开发者 | 面试求职者✅ 文章亮点:超详细解析 + 代码示例 + 实战应用✅ 目标:掌握 Go 语言核心数据类型,助你写出高效、稳定的 Go 代码!📌 本篇文章介绍了 Go 语言的常见数据类型,包括 string、slice、map 等,帮助你掌握 Go 语言基础。📌 进阶学习:Go 并发(Goroutine)、微服务(gRPC)、Web 开发(Gin 框架)Go 官方文档。 阅读详情

跟着“码术”一起学习Golang语言,偷懒了好多天啦,今天继续讲解Golang中的类型。今天讲解的是字符串。

 

学习Golang语言(1): Hello World

学习Golang语言(2): 变量

学习Golang语言(3):类型--布尔型和数值类型

学习Golang语言(4):类型--字符串

学习Golang语言(5):类型--数组

学习Golang语言(6):类型--切片

 

数值类型

补充上一章节没有指出的地方:

Golang还定义了三种依赖系统的类型:int、unint和uintptr。因为在32位系统和64位系统上用来表示这些类型的位数是不同的。

 

字符串

Golang中另一个重要的内建类型是string。

字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。

Go语言的字符串的字节使用UTF-8编码标识Unicode文本。
字符串的表示很简单,用双引号("")或者反引号(``)来创建。例如:"hello world" 或者 `hello world`。

两者的区别:

双引号之间的转义符会被转义,而反引号之间的字符保持不变。例如:

package main

import (
	"fmt"
)

func main() {
	var a = "hello \n world"
	var b = `hello \n world`
	fmt.Println(a)
	fmt.Println("----------")
	fmt.Println(b)
}

输出:

hello 
 world
----------
hello \n world

如果使用单引号(')则表示一个字符(UTF-8编码)----这种在Go语言中不是string。

字符串一旦赋值了,字符串就不能修改了:在Go中字符串是不可变的。一些操作在Go是非法的。

    var s = "hello world"
    s[0] = 'c' <-----修改第一个字符为'c',这回报错。

在Go中实现这个需要这么操作:

func main() {
	var s = "hello"
	c := []rune(s)
	c[0] = 'c'
	s2 := string(c)
	fmt.Printf("%s \n", s2)
}

1、将s转换为rune数组;2、修改数组的第一个元数;3、创建新的字符串s2;4、打印输出。

多行字符串

由于Go语言会在每行后自动添加分号,因此使用多行字符串时候,需要注意:

    s := "Starting part"
    + "Ending part"

会被自动转换为:

    s := "Starting part";
    + "Ending part";

这个是错误 的,应当写成:

    s := "Starting part"+
     "Ending part"

这样Go就不会在错误的地方插入分号,另外一种方式就是使用反引号(``)作为原始字符串符号:

    s := `Starting part
     Ending part`

此时s也包含了换行。因为反引号中间的字符会保持不变。

 

字符串转换

可以使用string(char)将一个字符转换成一个包含单个字符的字符串。

 

字符串处理的包

---------------------------------------------

string包

包括字符串的分割,替换,合并等处理;

strconv包

提供许多可以在字符串和其他类型的数据之间的转换函数。

utf-8包

主要用来查询和操作UTF-8编码的字符串或者字符切片。

unicode包

提供一些用来检查Unicode码点是否符合主要标准的函数。

---------------------------------------------

rune

Rune是int32的别名。用UTF-8进行编码。这个类型什么时候使用呢?例如需要遍历字符串的字符时候,可以混换每个字节。为了获得实际的字符,需要使用rune类型。

var s = "你好"
fmt.Println(len(s))
c := []rune(s)
fmt.Println(len(c),c)

输出结果:

6
2 [20320 22909]

---------------------------------------------

欢迎关注码术!一起学习Golang语言。

 

 

【Golang学习之旅】Go 语言基础语法概览 ✅ 适合人群: Golang 新手 | 后端开发者 | 面试求职者✅ 文章亮点: 语法详解 + 实战代码 + 高质量示例✅ 目标: 10 分钟快速掌握 Golang 基础语法,助你高效写项目!Go 语言(Golang)是Google开发的一门静态强类型并发支持强语法简洁的编程语言,广泛应用于后端开发云计算微服务区块链等领域。🔹 Go 语言的 4 大核心特点:✅ 语法简洁(减少代码冗余,开发高效)✅ 高性能(比 Python 快,比 Java 简单) 阅读详情

相关推荐

Go语言学习之旅--初识GoLang

Go语言简介特点编码风格Go安装 Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。 简介 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 特点 Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。 与C++

qq_45661125的博客 2729

Golang 反引号 原生字符串定义方法特点

方法: 使用反引号将原生字符包括起来,直接定义。 示例: package main import "fmt" func main() { s := `Ydook.com /.,\\~"\"\n\t\'$$%%\%\&"''` fmt.Println(s) } 运行代码: Ydook.com /.,\\~"\"\n\t\'$$%%\%\&"'' ...

YDOOK 2827

倾斜摄影与激光点云融合建模:Photoscan+ContextCapture避坑指南

本文详细解析了倾斜摄影与激光点云融合建模的技术流程,重点介绍了使用Agisoft Metashape(原Photoscan)与ContextCapture进行数据融合的实战指南。文章深入探讨了数据预处理、坐标系统一、空三计算策略及在ContextCapture中进行点云配准等关键步骤,旨在帮助从业者规避常见陷阱,高效构建兼具高精度几何与真实纹理的三维实景模型。

weixin_29062613的博客 250

【GoLang】3.1 字符串

学习GoLang字符串的过程笔记,包含字符串长度、索引、切片、搜索、转变大小写、拼接、替换、分割、修剪、多行字符串等API与语法的使用。在最后,通过看源码,展示了string的底层结构。

你的指尖有改变世界的力量 1993

制造业信息化的现实困局与未来展望:从基础到数字化的挑战与机遇

随着全球科技的发展和市场竞争的加剧,制造业的转型升级成为企业必须面临的挑战。在信息化和数字化的浪潮下,许多企业试图通过技术创新来提升自身竞争力。然而,现实情况是,绝大部分制造业企业的基本信息化都尚未完成,更遑论复杂的数字化。那么,制造业在信息化进程中面对哪些阻碍?未来又该如何实现从基础信息化到数字化的转型?

Yz2024的博客 2983

Mixly/Arduino实战:WS2812点阵动态显示自定义图案与汉字

本文手把手教你使用Mixly和Arduino驱动WS2812点阵屏,实现自定义图案与汉字的动态显示。内容涵盖硬件连接、取模软件设置、高效数据处理技巧(巧用Excel)、Mixly图形化编程及Arduino代码解析,并深入探讨动态显示与滚动汉字原理,最后提供常见问题排查与性能优化心得,助你从零开始轻松玩转智能硬件。

weixin_29185199的博客 454

Golong 字符串多行显示

Golong 字符串多行显示

Muti-Agent 5029

基于Simulink的防空导弹六自由度弹道建模与仿真实战

本文详细介绍了基于Simulink的防空导弹六自由度弹道建模与仿真方法。通过分析导弹动力学原理、Simulink环境配置、气动力建模、推进与控制系统设计等关键环节,提供了一套完整的实战指南。文章特别强调了六自由度模型在防空导弹仿真中的重要性,并分享了常见问题排查与优化建议,为相关领域工程师提供实用参考。

apple5的专栏 868

Golang数据类型(字符串)

要知道strings.Join()的用法,必须知道什么是切片(Slice),而要理解切片,又必须先要知道什么是数组(Array),所谓数组可以理解为一种特殊的列表,区别是列表可以包含多种数据类型的元素,而数组只能包含同一种数据类型的元素,即一个数组里的所有元素必须全部为字符串,或者全部为整数。因为英文字母的编码为ASCII,可以用字节表示。在Go中,切片是数组衍生出来的概念,两者的区别是:数组的长度是固定的,在声明一个数组时,你必须指定该数组的长度(即该数组里面有多少个元素),以及该数组里元素的数据类型。

小信的博客 763

STM32双ADC同步采样实战:FFT测量相位差的5个关键细节

本文深入探讨了利用STM32双ADC同步采样结合FFT算法精确测量信号相位差的实战技巧。文章聚焦五个关键细节:确保ADC时钟同源、优化DMA缓冲区设计、信号调理与窗函数选择、精确的相位提取与解缠绕,以及系统误差校准与验证。这些细节是提升相位差测量精度、确保系统稳定性的核心,尤其强调了STM32配置中易被忽视的时钟同步问题。

oauth7security的博客 594

人形机器人骨骼材料选型实战:从铝合金到碳纤维的5种方案对比

本文深入探讨人形机器人骨骼材料的选型策略,对比铝合金、镁合金、钛合金、碳纤维复合材料及3D打印材料等5种方案的性能优劣。通过建立强度-重量比、疲劳寿命等核心评价维度,结合具体应用场景,提供科学的材料决策方法论,助力开发者优化机器人结构设计,实现性能与成本的平衡。

weixin_29199873的博客 438

Golang系列之字符串类型基本介绍

Golang系列之字符串类型基本介绍,在go语言中,字符串是一种基本类型,和其它开发语言不同,go的字符串是由单个字节连接起来的。go语言统一使用utf-8编码标识Unicode文本。当字符为ASCII编码时,占用1个字节,其它字符占用2到4个字节,中文占用3个字节

Nicky's blog 2037

YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点

到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的平均质量分98分,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,目前本专栏免费阅读(暂时,大家尽早关注不迷路~)如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~YOLOv11有效涨点专栏——本专栏持续复习各种顶会内容——科研必备​ycb。

Snu77的博客 8079

【Go语言快速上手(一)】 初识Go语言

本篇文章着重讲解了GO语言的简介以及为什么要学习GO语言,后面讲解了GO语言的一些语法特性以及GO语言的变量与数据类型是怎样定义的

杭电码农-NEO的博客 3374

PMP–一、二、三模–分类–13.干系人管理

A:确认是否已制定沟通管理计划,使业务干系人认识到项目的成功之处。B:让业务干系人参加冲刺回顾会议。C:与发起人和关键干系人一起确定产品待办事项列表中的优先要务,以便交付商业利益。D:为关键干系人开展收尾调研。C。

stqer的博客 1418

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Go-Golang学习总结笔记

资源 某hub会审核不通过,自己去找吧 书籍 网站 基础 go官方中文网 菜鸟教程 C语言网 go语言中文网 golang系列 视频 基础 安装 依赖管理 数据类型 变量和常量 流程控制 函数 包 面向对象编程 提高 ...

关注网络安全、云原生安全 2万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Golang】认识Go语言中基本的数据类型

我们不论在学习什么语言中,我们都要去认识一下这个语言中的数据类型,当然学习Go也不例外,我们也要去认识一下其相关的数据类型,当然这些数据类型基本上是大同小异的,如果学之前一些语言的学习经验的话,在理解学习起来将会更加的迅速。

感谢您的关注! 1226

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

100天精通Golang(基础入门篇)——第5天: Go语言中的数据类型学习

本篇文章介绍了Go语言中常用的数据类型,包括整数类型、浮点数类型、布尔类型和字符串类型。每种数据类型的概念和用法都进行了详细的说明,并给出了与Java和Python的对比代码案例。通过学习这些数据类型,读者可以掌握Go语言中数据的存储和操作方式,为编写高效、可靠的Go程序打下坚实的基础。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 5万+

【Go】Go语言数据类型

Go语言数据类型介绍

weixin_44211968的博客 3856

100天精通Golang(基础入门篇)——第10天:Go语言中的数组

本篇文章是100天"学习Golang"系列文章的第10篇,主要介绍了Go语言中的数组以及数组的语法、多维数组、数组是值类型等内容。通过阅读本篇文章,读者能够了解到如何在Go语言中定义和使用数组,并掌握一些实用的代码技巧。Go语言是一种现代的、快速、并发的编程语言,由于其简单的语法和高效的执行效率,越来越受到广大开发者的青睐。本篇文章是100天学习Golang的第一篇,旨在为初学者提供一份关于Go语言数组的基础入门指南。我们将从数组的定义开始,详细介绍各种语法和技巧,帮助读者快速掌握Go语言数组的基础知识。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 5万+

【Golang】语法基础——深入解析Go语言的数据类型

Go语言(简称Golang)作为一门现代编程语言,以其简洁、强大的特性备受开发者青睐。在实际开发中,数据类型是语言的核心部分,理解和正确使用数据类型是编写高效、健壮代码的基础。本文将详细介绍Go语言中的基本数据类型及其特性,帮助读者更好地掌握Go语言的使用。

Linke的博客 2002

Go语言数据类型

Go语言数据类型 Go 语言按类别有以下几种数据类型: 数据类型 描述 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码。 字符串类型 字符串就是一串固定长度的字符连接起来...

ourLang 2万+

【golang学习之旅】Go中的变量——基本数据类型(2)

在将string 类型转成 基本数据类型时,要确保string类型能够转成有效的数据,比如我们可以把"123"转成一个整数,但是不能把"hello"转成一个整数,如果这样做,Golang直接将其转成 0。和Java/C 不同,Go在不同类型的变量之间赋值时需要显示转换,也就是说不能自动转换。Go的字符串是由单个字节连接起来的,每个字节是使用UTF-8编码来处理字符的。从上面的输出可以看出:类型转换所转换的是。的值,是把转换后的值交给了其他变量,变量本身的类型并没有发生变化。字符串有两种表示形式。

m0_60511809的博客 1577

【从零开始学习Go语言】六.Go语言之数据类型标识符

【从零开始学习Go语言】六.Go语言之数据类型标识符一.介绍二.数值类型:2.1 整数2.2 浮点型2.3复数型2.4 字符和字符串型2.5 接口型2.6.布尔型 一.介绍 之前一章讲解了go的关键字,并且只有25个关键字,而这篇文章记录的是数据类型标识符,注意数据类型标识符也属于关键字(预声明标识符),不过25个关键字为定义go语言程序结构的而今天的是定义数据类型的,它们共有20个小伙伴: ...

一只特立独行的兔先森 8412

【Golang】go语言异常处理快速学习

Go语言常见的异常处理知识大全,快速入门学习,形成整体知识架构,在实际中应用分析go语言异常处理的机制

2301_79819426的博客 1532

【GO】Go 学习(4)语言数据类型--语言效率的基石

go语言的效率为啥高?

dearmite的专栏 841
上一篇: 学习Golang语言(3):类型--布尔型和数值类型
下一篇: 学习Golang语言(5):类型--数组
codemanship
博客等级 码龄12年 31粉丝 43原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值