go语言基础知识笔记(二)之数组和切片

数组和切片知识用的也是比较多,的给我们工作带来很大的便利

 

(一) 数组

定义:在golang中数组的长度是不可变,数组存放要求是同一种数据类型
//golang中数组定义的四种方法
1.先声明,后赋值
  var arr1 [2]int
     arr1[0]=1
     arr1[1]=2

2.声明同时赋值
  var arr2 = [2]int{1,2}
  //或者
  arr2 := [2]int{1,2}
3.不指定长度程序自动计算长度
  var arr = [...]int{1,2}
  //或者
  arr := [...]int{1,2}
4.key和value的形式
  var arr = [...]int{1:1,0:2}
//或者
  arr := [...]int{1:1,0:2}
//golang中数组遍历的两种方法
1.常规方法
for i:=0;i<len(arr);i++ {
  fmt.Printf("arr[%d] = %v",i,arr[i])
}
2.高级方法(推荐使用)
for key(_),value:= range arr{
  fmt.Printf("arr[%d] = %v",i,arr[i])
}
//动态修改数组的值,默认情况下数组是值传递//形参定义成一个指针数据类型
func T2(a *[]string) {*a[0] = 99 //修改原来的值
}func main() {s1 := [...]string{11,22}T2(&s1) //传递一个数组的地址作为实际参数s1  = append(s1 , "33")
    fmt.Println(s1)
}
//数组指针和指针数组
1.数组指针即是一个指针并且这个指针保存了一个指向数组的地址
   var arr =  [...]int{5:2}    //数组指针    var pf *[6]int = &arr
2.指针数组即是一个数组,数组里面保存很多指针
  x,y := 1, 2
  pfArr := [...]*int{&x,&y}
//多维数组(二维)
1.多维数组即数组里面又是一个数组
2.定义方法
  2.1先定义再赋值
    var arr1 [2][2]int
    arr1[0][0] = 5.....
  2.2定义的同时赋值
    var arr2 [2][2]int = [2][2]int{{1,2,3},{3,4,5}}
3.多维数组的遍历
  3.1
    for i:=0;i<len(arr);i++{
       for j:=0;i<len(arr[i]);j++{
      }
    }
  3.2
    for i;value1 :=range arr2{
      for j;value2 :=range value1 {
        
    }
  
}

(二) 切片

  切片是数组的引用,并且是动态的数组,长度可以变化.

//切片的定义的几种方法
1.数组的引用
  var intArr [4]int = [...]{12,34,44,33,11}
  slice := intArr[1:3]
2.make定义
  
var slice []type = make([]type,len,[cap])
3.常规用法
  var slice []type = []type{value1,value2,value3}
  
遍历的方法和数组也是一样的就不继续啰嗦了

 

//切片的内置函数
1.动态添加切片append(切片,value1,value2,value3)
2.切片的copycopy(切片1,切片2)
//字符的切片
1.字符的切片在某种情况下是不可变的
2.想要修改字符串中的值[]byte(str)[这种是处理英文方式],
[]rune(str)[这种是处理中文方式]  

 

  

转载于:https://www.cnblogs.com/learningPHP-students2018/p/10785685.html

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

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

相关文章

错误处理在Spring Integration中如何工作

1.引言 这篇文章的目标是向您展示将消息传递系统与Spring Integration结合使用时如何处理错误。 您将看到同步和异步消息传递之间的错误处理有所不同。 和往常一样&#xff0c;我将跳过聊天并继续进行一些示例。 您可以在github上获取源代码。 2&#xff0c;样品申请 我将使用…

原生js、jQuery实现选项卡功能

在大家在网上平常浏览网页的时候&#xff0c;想必各位都会看到选项卡功能&#xff0c;在这里给大家详解一下用原生js、jQuery如何来写一些基本的选项卡 话不多说&#xff0c;先给各位看一下功能图&#xff1a; 好了&#xff0c;下边开始写代码了&#xff1a; HTML代码&#x…

.NET core2.0 发布至IIS中

.NET CORE和asp.net 发布时不太一样&#xff0c;ASP.NET Core不再是由IIS工作进程&#xff08;w3wp.exe&#xff09;托管&#xff0c;而是使用自托管Web服务器&#xff08;Kestrel&#xff09;运行&#xff0c;IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Co…

深入了解Java 8日期和时间API

在这篇文章中&#xff0c;我们将更深入地了解通过Java 8获得的新的Date / Time API&#xff08; JSR 310 &#xff09;。 请注意&#xff0c;本文主要由显示新API功能的代码示例驱动。 我认为这些示例是不言自明的&#xff0c;因此我没有花太多时间在它们周围写文本:-) 让我们…

P4047 部落划分

这题太水了吧&#xff0c;不知道怎么蓝的&#xff0c;蒟蒻只写了十五分钟就一次AC了…… 但是挺有意思&#xff0c;就发篇题解吧qwq emmm……最小生成树&#xff08;贪心&#xff09;&#xff0c;就没别的了…… 要明确&#xff1a; 一开始可以把每个点都看成一个部落&#xff…

如何用纯 CSS 创作一个文本淡入淡出的 loader 动画

效果预览 在线演示 按下右侧的“点击预览”按钮可以在当前页面预览&#xff0c;点击链接可以全屏预览。https://codepen.io/comehope/pen/ERwpeG可交互视频此视频是可以交互的&#xff0c;你可以随时暂停视频&#xff0c;编辑视频中的代码。请用 chrome, safari, edge 打开观…

java csf_WebService CSF使用详解 | 学步园

一建立service:1)CxfService&#xff1a;WebServicepublicinterfaceCxfService {WebMethodpublicWebResultList getTasksByActor(WebParam(name"actor") String actor);WebMethodpublicvoidcreateAndStartProcessInstance(WebParam(name"processName") Str…

软件工程和项目管理的区别

软件工程的定义&#xff1a; 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件&#xff0c;以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 项目管理的定义&#xff1a; 项目管理是一个管理学分支的学…

如何启动多个WebLogic托管服务器

WebLogic Server文档建议您创建专用的管理服务器&#xff0c;然后分离托管服务器以进行应用程序部署。 在这里&#xff0c;我将向您展示如何在与管理服务器相同的主机中创建一个或多个托管服务器。 我假设您已经安装了WLS&#xff0c;并已创建并正在运行自己的域。 如果您以前…

《机器学习基石》第一周 —— When Can Machine Learn?

&#xff08;注&#xff1a;由于之前进行了吴恩达机器学习课程的学习&#xff0c;其中有部分内容与机器学习基石的内容重叠&#xff0c;所以以下该系列的笔记只记录新的知识&#xff09; 《机器学习基石》课程围绕着下面这四个问题而展开&#xff1a; 主要内容&#xff1a; 一、…

如何用纯 CSS 创作一盘传统蚊香

效果预览 在线演示 按下右侧的“点击预览”按钮可以在当前页面预览&#xff0c;点击链接可以全屏预览。https://codepen.io/comehope/pen/BVpvMz可交互视频教程此视频是可以交互的&#xff0c;你可以随时暂停视频&#xff0c;编辑视频中的代码。请用 chrome, safari, edge 打…

LeetCode 905. 按奇偶排序数组

LeetCode 905. 按奇偶排序数组 转载于:https://www.cnblogs.com/hglibin/p/10794792.html

java父类序列化_父类的序列化与 Transient 关键字

情境&#xff1a;一个子类实现了 Serializable 接口&#xff0c;它的父类都没有实现 Serializable 接口&#xff0c;序列化该子类对象&#xff0c;然后反序列化后输出父类定义的某变量的数值&#xff0c;该变量数值与序列化时的数值不同。解决&#xff1a;要想将父类对象也序列…

Java:在Runnable中处理RuntimeException

去年年底&#xff0c;我正在运行预定的任务来监视Neo4j集群&#xff0c;而我遇到的问题之一是有时监视会退出。 我最终意识到这是因为RuntimeException被抛出到Runnable方法中&#xff0c;而我没有处理它。 以下代码演示了该问题&#xff1a; import java.util.ArrayList; im…

错误代码: 1231 - Variable 'sql_mode' can't be set to the value of 'NULL'

错误代码&#xff1a; 1231 - Variable sql_mode cant be set to the value of NULL 错误代码&#xff1a; 1231 - Variable sql_mode cant be set to the value of NULL 错误代码&#xff1a; 1231 - Variable sql_mode cant be set to the value of NULL mysql中的提示 删除注…

[Unity3D]Unity3D游戏开发之怪物AI

大家好。欢迎大家关注由我为大家带来的Unity3D游戏开发系列文章&#xff0c;我的博客地址为&#xff1a;http://blog.csdn.net/qinyuanpei。在上一篇文章中&#xff0c;我们基本上实现了一个小地图的功能&#xff0c;今天呢&#xff0c;我们来实现怪物AI&#xff0c;所谓怪物AI…

中国第一批写java的人_中国java开源界最可爱的人们

评论# re: 中国java开源界最可爱的人们2007-12-07 15:29sitinspring如果少一些抒情,多一点实质内容,文章更耐看. 回复 更多评论# re: 中国java开源界最可爱的人们[未登录]2007-12-07 15:49dennis竟然没有满江红&#xff0c;opendoc的意义不用多说了吧 回复 更多评论# re: 中…

如何把握好 transition 和 animation 的时序,创作描边按钮特效

效果预览 在线演示 按下右侧的“点击预览”按钮可以在当前页面预览&#xff0c;点击链接可以全屏预览。https://codepen.io/comehope/pen/mKdzZM可交互视频教程此视频是可以交互的&#xff0c;你可以随时暂停视频&#xff0c;编辑视频中的代码。请用 chrome, safari, edge 打…

使用PHREAK算法实现Drools 6性能

Drools 6引入了新的惰性匹配算法。 该算法的详细信息已在之前的两个博客中介绍&#xff1a; RIP RETE时间获得PHREAKY 基于PHREAK堆栈的评估和向后链接 第一篇文章讨论了性能以及为什么算法的批处理和惰性方面难以比较。 “性能的最后一点。 通常&#xff0c;使用PHREAK的单…

02Data

1.数据从何而来 2.数据对象和属性类型 数据集合的类型 结构数据的重要特征 数据对象 属性 属性类型 数据属性的类型 离散 vs.连续属性 3.数据的&#xff08;基本&#xff09;统计描述 分布度量 代数度量 整体度量 度量数据的中心趋势 对称/偏斜数据 4.数据可视化 5.数据的相似…