Go 菜鸟学习笔记-快速入门(下)

Go语言切片

Go语言中切片和数组的区别?

  1. 数组长度不可改变
  2. 切片是对数组的抽象,相对于数组来说,是一种“动态数组”,切片长度不是固定的,可以追加元素,
    感觉和Java 中的 array 与 list 的关系 很像

常见操作
1.声明方式

//1.声明一个未指定大小的数组来定义切片
var identifier []type 
//2.使用make()函数来创建切片
var slice1 []type = make([]type , len)
slice1 := make([]type ,len)
slice2 := make([]T, len, capacity) //也可以指定容量,len 是数组的长度并且也是切片初始长度

2.初始化

//直接初始化切片,[] 表示是切片类型,{1,2,3} 初始化值依次是 1,2,3,其 cap=len=3
s :=[] int {
   1,2,3 } 
//使用数组初始化切片
s := arr[:] 
s := arr[startIndex:endIndex] 
s := arr[startIndex:] 
s := arr[:endIndex] 
//使用切片s 初始化切片 s1
s1 := s[startIndex:endIndex] 
//使用内置函数make() 初始化切片s
s :=make([]int,len,cap) 

len() 和 cap() 函数

func main() {
   
   var numbers = make([]int,3,5)

   printSlice(numbers)
}

func printSlice(x []int){
   
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

//结果:len=3 cap=5 slice=[0 0 0]

空切片(nil)

func main() {
   
   var numbers []int

   printSlice(numbers)

   if(numbers == nil){
   
      fmt.Printf("切片是空的")
   }
}

func printSlice(x []int){
   
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

//结果:
//len=0 cap=0 slice=[]
//切片是空的

切片的截取
可以通过设置下限及上限来设置截取切片 [lower-bound:upper-bound]

func main() {
   
   /* 创建切片 */
   numbers := []int{
   0,1,2,3,4,5,6,7,8}  
   printSlice(numbers)

   /* 打印原始切片 */
   fmt.Println("numbers ==", numbers)

   /* 打印子切片从索引1(包含) 到索引4(不包含)*/
   fmt.Println("numbers[1:4] ==", numbers[1:4])

   /* 默认下限为 0*/
   fmt.Println("numbers[:3] ==", numbers[:3])

   /* 默认上限为 len(s)*/
   fmt.Println("numbers[4:] ==", numbers[4:])

   numbers1 := make([]int,0,5)
   printSlice(numbers1)

   /* 打印子切片从索引  0(包含) 到索引 2(不包含) */
   number2 := numbers[:2]
   printSlice(number2)

   /* 打印子切片从索引 2(包含) 到索引 5(不包含) */
   number3 := numbers[2:5]
   printSlice(number3)

}

func printSlice(x []int){
   
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

结果

len=9 cap=9 slice=[0 1 2 3 4 5 6 7 8]
numbers == [0 1 2 3 4 5 6 7 8]
numbers[1:4] == 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《易语言中文编程-从入门到精通【菜鸟基础教程】.doc》是一本针对易语言编程的入门教程,主要面向初学者提供基础知识和学习指导。下面将对该教程进行回答。 首先,该教程主张通过易语言进行编程,易语言是一种基于中文的编程语言,适合初学者快速入门。使用易语言可以方便地进行图形界面设计和简单的编程操作,不需要过多的编程基础。 该教程从基础知识开始介绍,如环境准备、安装运行及界面介绍等。接着介绍了易语言的基本语法和常用控件,如按钮、标签、输入框等,以及它们的属性和方法。教程还提供了大量实例代码,帮助读者理解和运用所学知识。 教程还介绍了常用的编程概念,如条件语句、循环语句、函数和数组等。这些概念是编程的基础,通过学习它们可以编写出简单的逻辑代码和实现常见的功能。 除了基础知识外,教程也涉及了一些进阶内容,如文件读写、数据库操作、网络编程等。这些内容可以帮助读者掌握更高级的编程技巧和应用场景。 整个教程的内容安排比较合理,循序渐进地引导读者学习易语言编程。对于初学者来说,这是一本不错的入门教程。 总的来说,《易语言中文编程-从入门到精通【菜鸟基础教程】.doc》是一本适合初学者入门的易语言编程教程。通过该教程的学习,读者可以初步掌握易语言编程的基本知识和技巧,并能够编写简单的应用程序。这本教程对于想要学习易语言编程的人来说,是一份很好的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值