Go语言 字符串和数组

本文主要内容为Go语言数据类型中字符串和数组定义、特性及使用示例。

目录

字符串(String)

定义

长度及访问

拼接

strings 包

判断前缀

查找

转为大写

转为小写

数组(定长)

定义

遍历

方式一

方式二

忽略值

总结


字符串(String)

定义

定义字符串单行和多行。

示例如下:

package mainimport "fmt"func main() {// 1 定义name := "miko"// 需要换行,原生输出字符串时,使用反引号``duo := `《面朝大海,春暖花开》
从明天起,做一个幸福的人
喂马、劈柴,周游世界
从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开
从明天起,和每一个亲人通信
告诉他们我的幸福
那幸福的闪电告诉我的
我将告诉每一个人
给每一条河每一座山取一个温暖的名字
陌生人,我也为你祝福
愿你有一个灿烂的前程
愿你有情人终成眷属
愿你在尘世获得幸福
我只愿面朝大海,春暖花开`fmt.Println(name)fmt.Println(duo)
}

长度及访问

String没有.length方法,可以使用自由函数len()进行处理

示例如下:

len1 := len(name)
fmt.Println(len1)// for不需要加()
for i := 0; i < len(name); i++ {fmt.Println("i:%d, v:%c\n", i, name[i])
}

拼接

可以使用+号进行字符串的拼接。

示例如下:

// 字符串拼接
i, j := "say:", "hello"
fmt.Println("i+j=", i+j)// 使用const修饰为常量,不能修改
const address = "北京"
// address = "上海"
fmt.Println("address", address)

strings 包

strings 包是用于处理字符串的工具包

里面有很多常用的函数

帮助我们对字符串进行操作。

判断前缀

示例:

fmt.Println(strings.HasPrefix("helloworld", "h"))

查找

示例:

fmt.Println(strings.Index(duo, "幸福"))

转为大写

示例:

fmt.Println(strings.ToUpper("helloworld"))

转为小写

示例:

fmt.Println(strings.ToLower("HELLO"))

数组(定长)

在PHP中数组可以不用定义长度,直接新增数据或删除数据。

但在Go语言中数组在定义时需要设置长度,且之后新增数据不可超过设定长度。

数组存放的是固定长度、相同类型的数据,而且这些存放的元素是连续的,

存放的数据类型没有限制。

定义

定义一个具有10个数字的数组,使用三种不同的方式进行定义。

示例如下:

package mainimport "fmt"func main() {// 定义 定义一个具有10个数的数组var nums = [10]int{1, 2, 3, 4}nums2 := [10]int{1, 2, 3, 4} //常用方式var nums3 [10]int = [10]int{1, 2, 3, 4}fmt.Println(nums)fmt.Println(nums2)fmt.Println(nums3)
}

运行结果:

[1 2 3 4 0 0 0 0 0 0]
[1 2 3 4 0 0 0 0 0 0]
[1 2 3 4 0 0 0 0 0 0]

这三种定义方式,结果都是一致的。

遍历

对数组的遍历有两种方式来实现。

方式一

通过for循环来进行遍历,输出key和value,与PHP不同的是,for循环没有小括号。

示例如下:

nums := [10]int{1, 2, 3, 4}
for i := 0; i < len(nums); i++ {fmt.Println("key => ", i, " value => ", nums[i])
}

运行结果:

key =>  0  value =>  1
key =>  1  value =>  2
key =>  2  value =>  3
key =>  3  value =>  4
key =>  4  value =>  0
key =>  5  value =>  0
key =>  6  value =>  0
key =>  7  value =>  0
key =>  8  value =>  0
key =>  9  value =>  0

方式二

通过 for range方式实现,比较简便。

示例如下:

for key,value := range nums {fmt.Println("key => ", key, " value => ", value)
}

Key是数组下标,value是数组的值,结果与遍历方式一一致。

忽略值

在go语言中,如果想忽略一个值,可以使用_。

可以在遍历的时候,忽略某个不用的值,比如忽略数组的key。

示例如下:

for _,value := range nums {fmt.Println("value => ", value)
}

运行结果:

value =>  1
value =>  2
value =>  3
value =>  4
value =>  0
value =>  0
value =>  0
value =>  0
value =>  0
value =>  0

总结

本文主要内容为Go语言数据类型中字符串和数组定义、特性及使用示例。

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

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

相关文章

川大智胜果然开盘涨停,这就是A股的尿性!

昨天特朗普被刺杀未遂&#xff0c;提前赢得了大选。今天A股的川大智胜(002253)开盘即涨停&#xff0c;毫无悬念。 不要觉得奇怪&#xff0c;这就是缅A一直以来的尿性&#xff01;什么炒龙凤&#xff0c;炒麻将&#xff0c;炒数字&#xff0c;炒AI&#xff0c;炒美国大选&#…

ROM修改进阶教程------深度解析小米设备锁机型不解锁bl 刷写特殊类固件的步骤

在玩机过程中会遇到很多自己机型忘记密码或者手机号不用导致机型出现账号锁。无法正常使用。那么此类机型如果无法正常售后解锁。只能通过第三方渠道。例如在早期小米机型有强解bl锁资源。然后刷入完美解锁包。这种可以登陆新账号。但后期新机型只能通过修改分区来屏蔽原设备锁…

【SpringBoot】95、SpringBoot中使用MyBatis-Plus实现自动加密存储和查询自动解密

有的业务需要将敏感数据加密存储到 DB,如果我们每个都手动去加密,再设值,再保存 DB,不仅麻烦,还对开发者不友好,在 MyBatis-Plus 中我们可以使用 BaseTypeHandler 来解决这个问题 1、新增 TypeHandler import com.baomidou.mybatisplus.core.toolkit.AES; import com.b…

ctf中php常见内容(比较、变量覆盖)

php比较 1.字符串和数字 PHP的字符串和数字比较时&#xff0c;会将字符串先转化成数字类型在进行比较。 字符串以数字开头时&#xff0c;以开头数字&#xff08;到字母出现截止&#xff09;作为转换结果&#xff1b;若开头不是数字的字符串或空&#xff08;null&#xff09;…

CORDIC Translate

随便记录一下下&#xff1a; Cordic IP核使用说明以及避坑记录-CSDN博客 本次只用到了Translate&#xff0c;记录一下自己遇到的坑坑 实际配置&#xff1a; timescale 1ns / 1nsmodule cordic_tb();reg clk;wire m_axis_dout_tvalid;reg s_axis_cartesian_tvalid 0;wire [31…

快速上手electron

官方文档: https://www.electronjs.org/zh/docs/latest/ 搭建项目 新建文件夹并初始化项目 mkdir my-electron-app && cd my-electron-app npm init -y注意:新生成的package.json的author(作者)和description(描述)字段要填写补全,不然后期打包会打不了 将package.…

使用Redis实现签到功能:Java示例解析

使用Redis实现签到功能&#xff1a;Java示例解析 在本博客中&#xff0c;我们将讨论一个使用Redis实现的签到功能的Java示例。该示例包括两个主要方法&#xff1a;sign()和signCount()&#xff0c;分别用于用户签到和计算用户当月的签到次数。 1. 签到方法&#xff1a;sign()…

【DRAM存储器三十四】LPDDR4介绍--MR和IO结构

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考资料:《镁光LPDDR4数据手册》 、《JESD209-4B》 目录 MR DDR3、DDR4、LPDDR4的IO结构变化 MR LPDDR4的MR包括保留未用的有64个,这个就不像以前一…

前端 JS 经典:二维数组转一维数组去重

前言&#xff1a;将数组[[1, 2], [2, 3], [1, 4]] 转为一维数组&#xff0c;且去重 1. 使用 Array.prototype.flat() 和 Set const twoDArray [[1, 2],[2, 3],[1, 4],];const oneDArray Array.from(new Set(twoDArray.flat()));console.log(oneDArray); // [1, 2, 3, 4] 2…

CUTLASS

文章目录 1、关于 CUTLASS2、CUTLASS 3.5中的新增功能3、性能4、兼容性4、操作系统5、硬件6、目标架构7、文档8、资源9、构建 CUTLASS10、项目结构11、CUTLASS模板库CUTLASS SDK示例工具测试 12、性能分析13、构建所有GEMM和卷积内核&#xff08;构建时间长&#xff09;14、构建…

银河麒麟高级服务器操作系统V10加固操作指南

1:检查系统openssh安全配置: 2:检查是否设置口令过期前警告天数: 3:检查账户认证失败次数限制: 修改/etc/pam.d/system-auth文件中deny的参数即可 4:检查是否配置SSH方式账户认证失败次数限制:

StarRocks部署高可用 FE 集群

一、准备工作 1.1 部署规划 这里我打算部署存算一体模式&#xff0c;三节点。即三个FE节点&#xff0c;三个BE节点。假设三台IP分别为&#xff1a;10.10.10.50、10.10.10.51、10.10.10.52 我将采用三台centos7.9进行部署&#xff0c;单台配置为128C 256G 3T。 1.2 服务器检查…

拓展神经网络八股(入门级)

自制数据集 minst等数据集是别人打包好的&#xff0c;如果是本领域的数据集。自制数据集。 替换 把图片路径和标签文件输入到函数里&#xff0c;并返回输入特征和标签 要生成.npy格式的数据集&#xff0c;在进行读入训练集。 只需要把图片灰度值数据拼接到特征列表&#xff0…

进程间通信(下)

system V共享内存 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间&#xff0c;这些进程间数据传递不再涉及到内核&#xff0c;换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据 共享内存示意图 通过上面的图&#xff0c;我们不难想到…

java算法day14

java算法day14 222 完全二叉树的节点个数。110 平衡二叉树257 二叉树的所有路径124 二叉树中的最大路径和 222 完成二叉树的节点个数 解法1&#xff0c;层序遍历&#xff0c;迭代解法。 就是层序遍历的模板题。 /*** Definition for a binary tree node.* public class Tree…

linux的学习(三):用户权限,查找,压缩命令

简介 关于用户权限&#xff0c;查找和压缩解压缩命令的简单使用 用户管理命令 useradd useradd&#xff1a;添加新用户&#xff0c;要root权限才能使用 useradd -g 组名 用户名&#xff1a;可以添加到组 创建成功会在 /home下有用户的主目录 passwd passwd 用户名&#x…

【C语言】多进程服务器

多进程服务器 多进程服务器步骤代码 最后 多进程服务器 步骤 服务器使用父进程 fork 创建子进程来和客户端进行通信&#xff0c;父进程负责取出连接请求。并且父进程接收子进程退出信号&#xff0c;通过信号处理函数回收子进程 步骤&#xff1a; 1.首先屏蔽子进程退出信号 2.使…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容(含视频)

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容&#xff08;含视频&#xff09; 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。d…

php反序列化--2--PHP反序列化漏洞基础知识

一、什么是反序列化&#xff1f; 反序列化是将序列化的字符串还原为PHP的值的过程。 二、如何反序列化 使用unserialize()函数来执行反序列化操作 代码1&#xff1a; $serializedStr O:8:"stdClass":1:{s:4:"data";s:6:"sample";}; $origina…

Android Service的解析

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 Android服务&#xff0c;即Service&#xff0c;是Android四大组件之一&#xff0c;是一种程序后台运行的方案&am…