当前位置: 首页 > news >正文

深圳建站公司开发费用沧州手机建站哪家好

深圳建站公司开发费用,沧州手机建站哪家好,装饰工程包括哪些主要内容,德阳网站制作公司Golang中的切片基本介绍切片在内存中的形式切片使用的三种方式方式一#xff1a;方式二#xff1a;方式三#xff1a;切片使用的区别切片的遍历切片注意事项和细节说明append函数切片的拷贝操作string和slice基本介绍 1.切片是数组的一个引用#xff0c;因此切片是引用类型… Golang中的切片基本介绍切片在内存中的形式切片使用的三种方式方式一方式二方式三切片使用的区别切片的遍历切片注意事项和细节说明append函数切片的拷贝操作string和slice基本介绍 1.切片是数组的一个引用因此切片是引用类型在进行传递时遵守引用传递的机制2.切片的使用和数组类型遍历切片、访问切片的元素和求切片长度len(slice)都是一样3.切片的长度是可以变化的因此切片是一个可以动态变化数组4.切片定义的基本语法 var 变量名 [] 类型 比如 bar a [] int package main import (fmt)func main() {var intArr [5]int [...]int{1, 33, 22, 55, 66}//slice就是切片名//intArr[1:3]表示slice引用到intArr这个数组//引用intArr数组的起始下标为1 最后的下标为3但是不包含3slice : intArr[1:3]fmt.Println(intArr, intArr)fmt.Println(slice 的元素是, slice)fmt.Println(slice 的元素个数是, len(slice))fmt.Println(slice 的容量, cap(slice)) //切片的容量是可以动态变化的 } /* intArr [1 33 22 55 66] slice 的元素是 [33 22] slice 的元素个数是 2 slice 的容量 4 */ 切片在内存中的形式 切片底层的数据结构可以理解成是一个结构体struct切片确实是一个引用类型 切片使用的三种方式 方式一 定义一个切片然后让切片去引用一个已经创建好的数组前面的案例就是这样的 方式二 通过make来创建切片 基本语法var 切片名 []type make([], len, [cap]) package main import (fmt)func main() {var slice []int make([]int, 4, 10)fmt.Println(slice) //默认值为0fmt.Println(slice len, len(slice), slice cap, cap(slice))slice[0] 100slice[2] 200fmt.Println(slice) } /* [0 0 0 0] slice len 4 slice cap 10 [100 0 200 0] */ 总结 1.通过make方式创建切片可以指定切片的大小和容量2.如果没有给切片的各个元素赋值那么就会使用默认值3.通过make方式创建的切片对应的数组的有make底层维护对外不可见只能通过slice去访问各个元素 方式三 定义一个切片直接就指定具体数组使用原理类似make的方式 func main(){var slice []int []int {1, 3, 5}fmt.Println(slice) }切片使用的区别 方式一是直接引用数组这个数组是事先存在的程序员可见的方式二是通过make来创建切片make也会创建一个数组是有切片在底层进行维护程序员是看不见的 切片的遍历 package main import (fmt)func main() {//使用常规的for循环遍历切片var arr [5]int [...]int{4, 5, 6, 7, 8}slice : arr[1:4]for i :0; i len(slice); i {fmt.Printf(slice[%v]%v , i, slice[i])}fmt.Println()//使用for-range方式切片for i, v : range slice {fmt.Printf(i%v v%v , i, v)} }//slice[0]5 slice[1]6 slice[2]7 //i0 v5 i1 v6 i2 v7 切片注意事项和细节说明 切片初始化时 var slice arr[startindex:endindex] 说明从arr数组下标为startindex取到endindex的元素(不含arr[endindex]) 切片初始化时任然不可以越界。范围在[0-len(arr)之间]但是可以动态增长 var slice arr [0:end]可以简写:var slice arr [:end]var slice arr[start:len(arr)]可以简写:var slice arr[start:]var slice arr[0:len(arr)]可以简写var slice arr[:] cap是一个内置函数用于统计切片的容量即最大可以存放多少个元素切片定义完后还不能使用因为本省是一个空的需要让其引用到一个数组或者make一个空间供切片来使用切片可以继续切片 append函数 用append内置函数可以对切片进行动态追加 package main import (fmt)func main() {var slice []int []int{100, 200, 300}//通过append直接给slice追加具体的元素slice append(slice, 400, 5000)fmt.Println(slice, slice)//通过append将切片slice追加给sliceslice append(slice, slice...)fmt.Println(slice, slice) } /* slice [100 200 300 400 5000] slice [100 200 300 400 5000 100 200 300 400 5000] */ 底层原理分析 1.切片append操作的本质就是对数组扩容 2.go底层会创建一下新的数组newArr(安装扩容后大小) 3.将slice原来包含的元素拷贝到新的数组newArr 4.slice重新引用到newArr 5.注意newArr是在底层来维护的程序员不可见 切片的拷贝操作 copy(para1,para2)参数的数据类型是切片 由下面的案例可知slice1和slice2的数据空间是独立相互不影响也就是说slice[0]999,slice2[0]任是1 package main import (fmt)func main() {var slice1 []int []int{1, 2, 3, 4, 5}var slice2 make([]int, 10)copy(slice2, slice1)fmt.Println(slice1, slice1)fmt.Println(slice2, slice2) }/* slice1 [1 2 3 4 5] slice2 [1 2 3 4 5 0 0 0 0 0] */ string和slice slice底层是一个byte数组因此string也可以进行切片处理sting是不可变的也就是说不能通过str[0]z’方式来修改字符串如果需要修改字符串可以先将string-[]byte/或者[]rune-修改-重写转成string package main import (fmt)func main() {str : hellowings//使用切片获取内容slice : str[6:]fmt.Println(slice, slice)//[]byte可以处理英文和数字但是不能处理中文//[]rune是按照字符处理兼容汉字arr1 : []byte(str)arr1[0] zstr string(arr1)fmt.Println(str, str) }//slice wings //strzhellowings
http://www.w-s-a.com/news/305571/

相关文章:

  • 兰州网站设计公司排名百度怎么发布短视频
  • 大连模板开发建站泰州网站建设策划方案
  • 厦门好的网站设计局域网内建网站
  • 关键词那种网站正版网页游戏平台排行榜
  • 网站自助建设平台创建网址快捷方式
  • 坑梓网站建设包括哪些成都网站建设优创
  • 重庆网站seo公司哪家好超级优化大师
  • 成都网站建设推广详情邵阳市住房和城乡建设局网站
  • 淄博网站推广猎头公司有哪些
  • 局域网内建立网站90设计网怎么样
  • 域名备案和网站备案有什么不同工程项目建设网站
  • 做网站难吗?wordpress评论qq
  • 权威网站优化价格电子商务静态网站建设实验报告
  • 公司如何办网站北京网站建设公司内江
  • 六安建设网站企业营业执照查询系统入口
  • a5网站建设如果建设淘宝导购网站
  • html5响应式网站开发教程在国内做跨境电商怎么上外国网站
  • win7配置不能运行wordpress关键词快速优化排名软件
  • 餐饮公司最好的网站建设手机网站 搜索优化 百度
  • 17网站一起做网批做服装团购网站
  • 广州网站制作知名企业网站搭建品牌
  • 如何去除网站外链个人网页制作全过程
  • 保洁公司网站怎么做科技设计网站有哪些内容
  • 建设厅网站查询网页设计好就业吗
  • 惠东县网站建设wordpress 如何回到初始
  • 如何让公司网站网站转备案
  • 获得网站所有关键字北京网站建设116net
  • 铜陵电子商务网站建设做龙之向导网站有用吗
  • 购物网站制作费用沧州新华区
  • 信宜网站设计公司在线购物商城系统