Golang字符串是否存在于切片或数组中的小工具(基本等同于python in语法)
// golang中是没有判断字符串是否存在数组或切片里的内置方法, 所以我们可以自己搞一个快速小组件
func Find(slice []string, val string) (int, bool) {
for i, item := range slice {
if item == val {
return i, true
}
}
return -1, false
} func main() {
var dataList []string{"test1", "test2"}
dataStr := "test1"
// 传入切片 和 要查找的字符串
_, flag := Find(dataList, dataStr)
if flag {
fmt.Println("存在 -> ", dataStr)
} else {
fmt.Println("不存在 -> ", dataStr)
} }
>>>>>>>>>>>>>>>>>:预期结果
存在 -> test1
Golang数组的取值
- 数组是固定长度的特定类型元素组成的序列
- 一个数字由零个或多个元素组成
- 数组的长度是固定的,因此Go更常用slice(切片, 动态的增长或收缩序列)
- 数组是值类型, 用索引下标访问每一个元素, 范围是0 - len-1, 访问超出数组长度范围 会panic异常 // Go Array 数组中没有复制的数组 会有相应的默认值 // 声明数组 , 并且个数组中的元素赋值
var intArr [5]int
fmt.Println(intArr)
intArr[0] = 12
intArr[1] = 34 fmt.Println(intArr) // 声明数组 并且直接赋值
var namestr [5]string = [5]string{"1", "2"}
fmt.Println(namestr) var namestr2 = [5]string{"1"}
fmt.Println(namestr2) // 取数组最后一个元素 顺便展示指定索引赋值
var namestr2 = [5]string{"1", 4: "124124"}
fmt.Println(namestr2, namestr2[len(namestr2)-1]) // 自适应数组大小[...]
var namestr3 = [...]string{"zj", "zjj", "zjjj"}
fmt.Println(namestr3) // 数据结构题类型数组 var namestr5 = [...]struct{
name string
age int
}{
{"zj", 18},
{"ccn", 18},
}
fmt.Println(namestr5) // 数组循环 for i:=0; i < len(namestr3);i++{
fmt.Println("for " + namestr3[i])
} for index, value := range namestr3{
fmt.Println(index, value)
} ** 数组注意事项:
数组是多个相同数据的组合, 且长度固定, 无法扩容 [5]int 数组使用步骤:
1.声明数组
2.给数组元素赋值
3.使用数组
4.数组索引从0开始 不能index of range
5.Go数组是值类型, 变量传递默认是值传递, 因此会进行值拷贝
6.修改原本的数组, 可以使用引用传递(指针)
Golang字符串是否存在于切片或数组中的小工具(基本等同于python in语法)的更多相关文章
- JS对象 数组排序sort() sort()方法使数组中的元素按照一定的顺序排列。 语法: arrayObject.sort(方法函数)
数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码 ...
- Leetcode 80.删除排序数组中的重复项 II By Python
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 ...
- 数组中出现次数超过一半的数字(python)
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 二维数组中的查找(C++和Python实现)
(说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列 ...
- java中list或数组中随机子集工具类
package com.example.demo.test; import java.util.ArrayList;import java.util.Arrays;import java.util.L ...
- golang切片和数组的区别
好久的没有写博客了,这段时间没事研究了下go这门语言. 我们先介绍下go中的数组和切片的区别和用法 说了这么多 我们先来看段代码吧 var arr1 [3]int var arr2 [3]int = ...
- GO语言的进阶之路-Golang字符串处理以及文件操作
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...
- Golang字符串处理以及文件操作
一.整数 1.int与uint的初值比较以及其大小. 1 /* 2 #!/usr/bin/env gorun 3 @author :xxxx 4 Blog:http://www.cnblogs.com ...
- Golang字符串函数认识(二)
package main import ( "fmt" "strings" ) func main(){ //返回字符在指定字符串中最后一次出现的位置 last ...
随机推荐
- 关于Lombok框架子类继承时EqualsAndHashCode注解的callSuper取值的思考
先看例子(原始用例来源于这篇文章): TV类 @Getter @Setter //@EqualsAndHashCode @AllArgsConstructor @NoArgsConstructor p ...
- 什么时候使用transition?什么时候使用animation?
不同点: 1. 触发条件不同.transition通常和hover等事件配合使用,由事件触发.animation则和gif动态图差不多,立即播放. 2. 循环. animation可以设定循环次数. ...
- tengine下载和安装
tengine简介: Tengine所基于开发的Nginx的意思是Engine-X,Tengine在淘宝开发,所以我们把Engine-X中的X替换成Taobao.Tengine即Taobao-Engi ...
- 容器编排系统之Pod资源配置清单基础
前文我们了解了k8s上的集群管理工具kubectl的基础操作以及相关资源的管理,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14130540.html:今天我 ...
- SpringBoot整合Swagger2详细教程
1. 简介 随着前后端分离开发模式越来越流行,编写接口文档变成了开发人员非常头疼的事.而Swagger是一个规范且完整的web框架,用于生成.描述.调用可视化的RESTful风格的在线接口文档,并 ...
- 关于golang的time包总结
目录 前言 time包详解 总结 前言 各种编程语言都少不了与时间有关的操作,因为很多判断都是基于时间,因此正确和方便的使用时间库就很重要额. golang提供了import "time&q ...
- 【PY从0到1】第三节 列表
# 3 列表 # 1> 下面这就是一个列表 aabbccdd = ['ee','ff','gg'] # 列表可以储存数据,包含其中元素可以有很多,是可修改.有次序的. # 下面展示一下两套索引. ...
- html 01-认识Web和Web标准
01-认识Web和Web标准 #Web.网页.浏览器 #Web Web(World Wide Web)即全球广域网,也称为万维网. 我们常说的Web端就是网页端. #网页 网页是构成网站的基本元素.网 ...
- [日常摸鱼]bzoj1083[SCOI2005]繁忙的都市-最小生成树
我也不知道为什么我要来写这个-怕是写水题写上瘾了(bu #include<cstdio> #include<algorithm> #define rep(i,n) for(re ...
- Spring Data JPA 基础第二篇
主要调用工具类JpaUtils类 package cn.itcast.utils;import javax.persistence.EntityManager;import javax.persist ...