跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) angular(82) LLM(78) 大语言模型(63) 人工智能(53) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(33) Go基础(29) Python(24) Vue(22) Web开发(20) Web技术(19) 精选资源(19) 深度学习(19) Java(18) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) 安卓(11) 聊天机器人(10) typescript(10) 资料精选(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) ChatGPT(9) LLMOps(9) Go语言中级开发(9) 自然语言处理(9) PostgreSQL(9) 区块链(9) mlops(9) 安全(9) 全栈开发(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 软件架构(7) RAG(7) Go语言高级开发(7) AWS(7) C++(7) 数据科学(7) whisper(6) Prisma(6) 隐私保护(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 智能体(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 提示工程(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) kafka(5) 推荐系统(5) WebAssembly(5) GameDev(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) 编程语言(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) nextjs(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) RAG架构(3) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) 语言模型(2) 可穿戴设备(2) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) 数据分析(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

在 Go 中使用字符串的介绍


字符串是一个或多个字符(字母、数字、符号)的序列,可以是常量或变量。由 Unicode 组成的字符串是不可变的序列,这意味着它们是不变的。

因为文本是我们在日常生活中使用的一种常见的数据形式,所以字符串数据类型是编程的一个非常重要的构建块。

本 Go 教程将介绍如何创建和打印字符串、如何连接和复制字符串以及如何将字符串存储在变量中。

字符串文字


在 Go 中,字符串存在于反引号 `(有时称为反引号)或双引号内。根据您使用的引号,字符串将具有不同的特征。

使用反引号,如` ```bar``` `,将创建一个原始字符串文字。在原始字符串文字中,任何字符都可以出现在引号之间,反引号除外。这是一个原始字符串文字的示例:

`Say "hello" to Go!`


反斜杠在原始字符串文字中没有特殊含义。例如,\n 将显示为实际字符、反斜杠 \ 和字母 n。与解释的字符串文字不同,其中 \n 将插入一个实际的新行。

原始字符串文字也可用于创建多行字符串:

`Go is expressive, concise, clean, and efficient.
Its concurrency mechanisms make it easy to write programs
that get the most out of multi-core and networked machines,
while its novel type system enables flexible and modular
program construction. Go compiles quickly to machine code
yet has the convenience of garbage collection and the power
of run-time reflection. It's a fast, statically typed,
compiled language that feels like a dynamically typed,
interpreted language.`

解释的字符串文字是双引号之间的字符序列,如“bar”。在引号内,除了换行符和未转义的双引号外,任何字符都可能出现。

"Say \"hello\" to Go!"


您几乎总是会使用解释字符串文字,因为它们允许在其中包含转义字符。

现在您了解了字符串在 Go 中是如何格式化的,让我们看看如何在程序中打印字符串。

打印字符串


您可以使用系统库中的 fmt 包并调用 Println() 函数来打印字符串:

fmt.Println("Let's print out this string.")

Output
Let's print out this string.


使用时必须导入系统包,因此打印字符串的简单程序如下所示:

package main

import "fmt"

func main() {
    fmt.Println("Let's print out this string.")
}

 

字符串连接


连接意味着将字符串首尾相连,以创建一个新字符串。您可以使用 + 运算符连接字符串。请记住,当您使用数字时,+ 将是一个加法运算符,但当与字符串一起使用时,它是一个连接运算符。

让我们通过 fmt.Println() 语句将字符串文字“Sammy”和“Shark”结合起来:

fmt.Println("Sammy" + "Shark")

Output
SammyShark


如果您想要两个字符串之间的空格,您可以简单地在字符串中包含空格。在此示例中,在 Sammy 之后的引号内添加空格:

fmt.Println("Sammy " + "Shark")

Output
Sammy Shark


+ 运算符不能在两种不同的数据类型之间使用。例如,您不能将字符串和整数连接在一起。如果您要尝试编写以下内容:

fmt.Println("Sammy" + 27)


您将收到以下错误:

Output
cannot convert "Sammy" (type untyped string) to type int
invalid operation: "Sammy" + 27 (mismatched types string and int)


如果要创建字符串“Sammy27”,可以通过将数字 27 放在引号 (“27”) 中来实现,这样它就不再是整数而是字符串。在处理邮政编码或电话号码时,将数字转换为字符串以进行连接可能很有用。例如,您不想在国家代码和区号之间执行相加,但您确实希望它们保持在一起。

当您通过连接组合两个或多个字符串时,您正在创建一个可以在整个程序中使用的新字符串。

将字符串存储在变量中


变量是可用于在程序中存储数据的符号。您可以将它们视为一个空框,您可以在其中填充一些数据或值。字符串是数据,因此您可以使用它们来填充变量。将字符串声明为变量可以更轻松地在整个 Go 程序中使用字符串。

要将字符串存储在变量中,只需将变量分配给字符串。在这种情况下,将 s 声明为您的变量:

s := "Sammy likes declaring strings."


注意:如果您熟悉其他编程语言,您可能将变量写为 sammy。然而,Go 更喜欢较短的变量名。在这种情况下为变量名选择 s 会被认为更适合 Go 的编写风格。

现在您已将变量 s 设置为该特定字符串,您可以像这样打印变量:

fmt.Println(s)


然后您将收到以下输出:

Output
Sammy likes declaring strings.


通过使用变量来代替字符串,您不必每次想要使用字符串时都重新键入字符串,从而使您在程序中使用和操作字符串变得更加简单。

结论


本教程介绍了在 Go 编程语言中使用字符串数据类型的基础知识。创建和打印字符串、连接和复制字符串以及将字符串存储在变量中将为您提供在 Go 程序中使用字符串的基础知识。

文章链接