编程笔记 Golang基础 017 数据类型:字符串类型

编程笔记 Golang基础 017 数据类型:字符串类型

  • 一、字符串类型
  • 小结

在Go语言中,字符串(string)是一种基本的数据类型,用于表示文本数据。它是一个不可变的字符序列,由UTF-8编码的字节组成,支持Unicode字符集。

一、字符串类型

  1. 定义

    • Go中的字符串是由双引号 " 包围的一系列字符。
    var greeting string = "Hello, 世界"
    
  2. 内部实现

    • 在内存中,字符串实际上是通过一个字节数组([]byte)来存储的,并且该数组的内容是只读的,因此字符串本身是不可修改的。
    • 字符串的实际长度等于其包含的字节数,但它的有效字符数量取决于实际的UTF-8编码序列。
  3. Unicode支持

    • Go语言原生支持Unicode字符,这意味着你可以直接在字符串中使用任何Unicode字符或代码点。
    s := "😀😃😄" // 这是一个包含三个表情符号的字符串
    
  4. 操作与方法

    • 虽然字符串不可变,但可以通过函数和方法进行连接、复制、查找、替换等操作。
      package main
      import ("fmt""strings"
      )func main() {str1 := "Hello"str2 := "World"combined := str1 + " " + str2 // 字符串拼接fmt.Println(combined) // 输出:Hello WorldlowerStr := strings.ToLower("Golang") // 转为小写fmt.Println(lowerStr) // 输出:golangcontains := strings.Contains(combined, "Wor") // 检查子串存在性fmt.Println(contains) // 输出:truereplaced := strings.Replace(combined, "World", "Universe", -1) // 替换子串fmt.Println(replaced) // 输出:Hello Universe
      }
      
  5. 转换

    • 可以将字符串转换为字节切片([]byte),反之亦然。
      str := "example"
      bytes := []byte(str)
      newStr := string(bytes)
      
  6. 原始字符串(Raw String Literals)

    • 原始字符串允许在字符串内容中直接包含换行符和反斜杠,而无需转义。
      raw := `This is a 
      

multiline string.
The backslash \ does not need to be escaped here.`
```

  1. 空字符串
    • 空字符串用双引号包围的零长度字符序列表示:""

总的来说,Go语言中的字符串设计旨在简化对Unicode文本的处理,同时提供了丰富的标准库函数来进行高效的操作和管理。

小结

字符串类型使用率最高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697722.shtml

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

相关文章

深入URP之Shader篇15: Shader关键字和变体

之前说了很多shader关键字的事情,本篇好好说一下关键字和变体。 关键字是干什么的 我们写shader的时候,经常会遇到需要处理不同的情况,比如是否启用雾,光源是平行光还是点光源,是否使用法线贴图等等。如果为每一种情…

基于springboot+vue的大创管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

【selenium】执行 Javascript 脚本 滚动、元素的特殊操作等

某些特殊情况下,使用selenium的api无法操作页面元素,点击、滚动实现的某些功能,可以考虑通过执行js来完成。 为什么不用js写自动化?——selenium第一版是js写的,但js兼容性存在问题,所以引入webdriver 现在…

ad15 PCB3D模型导出到SOLIDWORKS

注意,工程文件目录不能用中文,否则导出的文件会不存在 将这个文件直接拖到 SOLIDWORKS 中 下一步很关键 显示出来了 另存为一个转配体就可以了

12 个对开发人员有用的 Python 脚本

目录 Create strong random passwordsExtract text from a PDFText processing with PandocManipulate audio with PydubFilter textLocate addressesConvert a CSV to ExcelPattern match with regular expressionsConvert images to JPGCompress imagesGet content from Wiki…

FPS游戏之漫谈网络抖动引发客户端的卡顿优化

话说各位大神 你们遇到过因为网络抖动导致客户端的卡顿现象吗,或者说测试反馈模拟弱网环境的时候某个功能点会卡顿一下,然后通过各种定位,发现原来是一次性下发了好多包???? 问题来了如果我们在…

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(14)

自己挖了一个坑,准备做SS928/SD3403的Yolov8的移植,主要是后台私信太多人在问相关的问题。先别着急去写代码,因为在hi3516dv500下的移植还是比较顺利。之前在hi3519av100和hi3559av100系列时遇到过一些问题,所以没有继续去移植新的算法。 SS928架构乍一看和hi3559av100特别…

Ubuntu系统本地部署Inis博客结合内网穿透实现远程访问本地站点

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总…

git 使用总结

文章目录 git merge 和 git rebasegit mergegit rebase总结 git merge 和 git rebase git merge git merge 最终效果说明: 假设有一个仓库情况如下,现需要进行 merge: merge 操作流程: merge 的回退操作: git reba…

Java适配器模式 - 灵活应对不匹配的接口

Java适配器模式 - 灵活应对不匹配的接口 引言: 在软件开发中,我们经常遇到不同系统、库或框架之间的接口不兼容问题。为了解决这些问题,我们可以使用适配器模式。适配器模式是一种结构型设计模式,它允许不兼容的接口之间进行协作…

用Python采集动态网页Requests就不那么好用了,试试Selenium

Requests + BeautifulSoup + 额外的库: 对于一些简单的动态内容,你能通过分析网络请求来找到并直接获取这些数据。 使用 requests 库来发送 HTTP 请求,并使用 BeautifulSoup 来解析 HTML。 对于 AJAX 请求,你可能需要使用额外的库(如 mitmproxy 或 BrowserMob Proxy)来…

武汉AAA企业信用等级认证

AAA企业信用等级认证 1. 什么是AAA企业信用等级认证 AAA企业信用等级认证是由国家知名的第三方机构对企业的信用状况进行评估和认证的一种方式。它是根据企业在市场经济中所展示出的信用水平、经营实力、企业形象等方面的表现来确定企业的信用等级,以此为企业提供…

在线进制转换工具

在线进制转换 - BTool在线工具软件,为开发者提供方便。 在线进制转换器提供了二进制,八进制,十进制,十六进制等相互转换功能。

Putty中运行matlab文件

首先使用命令 cd /home/ya/CodeTest/Matlab进入路径:到Matlab文件夹下 然后键入matlab,进入matlab环境,如果main.m文件在Matlab文件夹下,直接键入main即可运行该文件。细节代码如下: Unable to use key file "y…

LeetCode 2828.判别首字母缩略词

给你一个字符串数组 words 和一个字符串 s ,请你判断 s 是不是 words 的 首字母缩略词 。 如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s ,则认为 s 是 words 的首字母缩略词。例如,“ab” 可以由 [“apple”, “banana”…

【OpenAI官方课程】第三课:ChatGPT文本总结Summarizing

欢迎来到ChatGPT 开发人员提示工程课程(ChatGPT Prompt Engineering for Developers)!本课程将教您如何通过OpenAI API有效地利用大型语言模型(LLM)来创建强大的应用程序。 本课程由OpenAI 的Isa Fulford和 DeepLearn…

【数据分析——Python Pandas库——数据清洗——电商数据分析】

引言 现如今,我们在电商平台上购物已经成为日常生活的一部分。对于电商公司而言,如何准确理解消费者的需求,提供更好的服务是非常重要的。在这里,数据分析成为提供关键洞察力的工具。Python语言与其数据处理库Pandas,…

K8S部署Java项目 pod报错 logs日志内容:no main manifest attribute, in app.jar

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

hash,以及数据结构——map容器

1.hash是什么? 定义:hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出, 该输出就是散列值。这种转换是一种压缩映射&…

Ubuntu/WSL下生产密钥脚本

说明: 有时候需要为开发人员配发密钥,为方便写了个小脚本,在linux下运行,要求 python10, putty-tools。 使用时,在staffList定义用户列表,运行后程序自动产生对应目录及密钥。 安装: apt inst…