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

做网站的得花多钱智能识别图片

做网站的得花多钱,智能识别图片,电商app开发方案,网站建设500元Go语言入门(数组、切片和指针) 目录五、数组、切片和指针1. 数组1.1 声明和初始化数组1.2 访问和修改数组元素1.3 多维数组 2. 切片2.1 声明和初始化切片2.2 访问和修改切片元素2.3 切片操作2.4 切片的追加和拷贝 3. 指针3.1 声明和初始化指针3.2 指针与…

Go语言入门(数组、切片和指针)

  • 目录
    • 五、数组、切片和指针
      • 1. 数组
        • 1.1 声明和初始化数组
        • 1.2 访问和修改数组元素
        • 1.3 多维数组
      • 2. 切片
        • 2.1 声明和初始化切片
        • 2.2 访问和修改切片元素
        • 2.3 切片操作
        • 2.4 切片的追加和拷贝
      • 3. 指针
        • 3.1 声明和初始化指针
        • 3.2 指针与函数
        • 3.3 指针数组和数组指针

目录

Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。

下面是 Go 语言的基础语法讲解和代码示例。


上一篇:四、Go语言入门(条件语句和循环语句)


五、数组、切片和指针

在 Go 语言中,数组、切片和指针是非常重要的数据结构和概念。它们各自有不同的用途和特性,理解它们有助于编写高效和清晰的代码。下面详细讲解 Go 语言中的数组、切片和指针,并提供代码示例。

1. 数组

数组是固定长度的同类型元素的集合。数组的长度在声明时就确定了,之后不能改变。

1.1 声明和初始化数组
package mainimport "fmt"func main() {// 声明一个长度为 5 的整型数组,并初始化var arr1 [5]intfmt.Println(arr1) // 输出:[0 0 0 0 0]// 使用字面量初始化数组arr2 := [5]int{1, 2, 3, 4, 5}fmt.Println(arr2) // 输出:[1 2 3 4 5]// 部分初始化,未指定的元素使用默认值arr3 := [5]int{1, 2}fmt.Println(arr3) // 输出:[1 2 0 0 0]// 使用 ... 推断数组长度arr4 := [...]int{1, 2, 3}fmt.Println(arr4) // 输出:[1 2 3]
}
1.2 访问和修改数组元素
package mainimport "fmt"func main() {arr := [5]int{1, 2, 3, 4, 5}// 访问数组元素fmt.Println(arr[0]) // 输出:1// 修改数组元素arr[0] = 10fmt.Println(arr) // 输出:[10 2 3 4 5]
}
1.3 多维数组
package mainimport "fmt"func main() {// 声明一个 2x3 的二维数组var matrix [2][3]intfmt.Println(matrix) // 输出:[[0 0 0] [0 0 0]]// 初始化二维数组matrix = [2][3]int{{1, 2, 3}, {4, 5, 6}}fmt.Println(matrix) // 输出:[[1 2 3] [4 5 6]]
}

2. 切片

切片是一个动态数组,可以根据需要自动扩展。切片比数组更灵活,更常用。

2.1 声明和初始化切片
package mainimport "fmt"func main() {// 声明一个长度为 3 的整型切片,并初始化var s1 []intfmt.Println(s1) // 输出:[]// 使用字面量初始化切片s2 := []int{1, 2, 3, 4, 5}fmt.Println(s2) // 输出:[1 2 3 4 5]// 使用 make 函数创建切片s3 := make([]int, 5) // 创建长度为 5 的切片,元素初始值为 0fmt.Println(s3) // 输出:[0 0 0 0 0]// 创建一个长度为 3,容量为 5 的切片s4 := make([]int, 3, 5)fmt.Println(s4) // 输出:[0 0 0]
}
2.2 访问和修改切片元素
package mainimport "fmt"func main() {s := []int{1, 2, 3, 4, 5}// 访问切片元素fmt.Println(s[0]) // 输出:1// 修改切片元素s[0] = 10fmt.Println(s) // 输出:[10 2 3 4 5]
}
2.3 切片操作

切片支持切片操作符,允许从现有切片中创建新的切片。

package mainimport "fmt"func main() {s := []int{1, 2, 3, 4, 5}// 从索引 1 到索引 3 创建一个新的切片(不包括索引 3)s1 := s[1:3]fmt.Println(s1) // 输出:[2 3]// 省略开始索引表示从头开始s2 := s[:3]fmt.Println(s2) // 输出:[1 2 3]// 省略结束索引表示直到最后s3 := s[2:]fmt.Println(s3) // 输出:[3 4 5]// 完全省略表示整个切片s4 := s[:]fmt.Println(s4) // 输出:[1 2 3 4 5]
}
2.4 切片的追加和拷贝

使用 append 函数可以向切片中追加元素,使用 copy 函数可以拷贝切片。

package mainimport "fmt"func main() {s := []int{1, 2, 3}// 追加单个元素s = append(s, 4)fmt.Println(s) // 输出:[1 2 3 4]// 追加多个元素s = append(s, 5, 6, 7)fmt.Println(s) // 输出:[1 2 3 4 5 6 7]// 追加一个切片s2 := []int{8, 9}s = append(s, s2...)fmt.Println(s) // 输出:[1 2 3 4 5 6 7 8 9]// 拷贝切片s3 := make([]int, len(s))copy(s3, s)fmt.Println(s3) // 输出:[1 2 3 4 5 6 7 8 9]
}

3. 指针

指针是存储另一个变量的内存地址的变量。在 Go 中,指针可以用来传递大对象以避免拷贝,提高性能。

3.1 声明和初始化指针
package mainimport "fmt"func main() {var a int = 10// 声明一个指向 int 的指针var p *int// 将 a 的地址赋值给 pp = &a// 访问指针变量的值fmt.Println("Address of a:", p) // 输出:a 的地址fmt.Println("Value of *p:", *p) // 输出:10// 修改指针指向的值*p = 20fmt.Println("New value of a:", a) // 输出:20
}
3.2 指针与函数

指针可以作为函数参数,用于传递大对象以避免拷贝。

package mainimport "fmt"// 函数参数是一个指向 int 的指针
func updateValue(p *int) {*p = 200
}func main() {a := 100fmt.Println("Before:", a) // 输出:100// 将 a 的地址传递给函数updateValue(&a)fmt.Println("After:", a) // 输出:200
}
3.3 指针数组和数组指针

指针数组是包含指针的数组,数组指针是指向数组的指针。

package mainimport "fmt"func main() {// 指针数组arr1 := [3]*int{}a, b, c := 1, 2, 3arr1[0] = &aarr1[1] = &barr1[2] = &cfor i, p := range arr1 {fmt.Println(i, *p) // 输出:0 1, 1 2, 2 3}// 数组指针arr2 := [3]int{1, 2, 3}var p *[3]int = &arr2fmt.Println(p)        // 输出:&[1 2 3]fmt.Println(*p)       // 输出:[1 2 3]fmt.Println((*p)[1])  // 输出:2
}

通过理解数组、切片和指针,能够更好地处理复杂的数据结构和内存管理,提高程序的效率和性能。


文章转载自:
http://dinncoastrid.tpps.cn
http://dinncowanderyear.tpps.cn
http://dinncoastragal.tpps.cn
http://dinncoanatropous.tpps.cn
http://dinncounassailable.tpps.cn
http://dinncocroquet.tpps.cn
http://dinncotelltruth.tpps.cn
http://dinncohdf.tpps.cn
http://dinncoprofiteering.tpps.cn
http://dinncowaxweed.tpps.cn
http://dinncospheric.tpps.cn
http://dinncoskillet.tpps.cn
http://dinncojewry.tpps.cn
http://dinncogrebe.tpps.cn
http://dinncoantewar.tpps.cn
http://dinncobudlet.tpps.cn
http://dinncoadolescent.tpps.cn
http://dinncomonazite.tpps.cn
http://dinncoeuphrasy.tpps.cn
http://dinncogripesack.tpps.cn
http://dinncometronome.tpps.cn
http://dinncolacerated.tpps.cn
http://dinncolima.tpps.cn
http://dinncospirophore.tpps.cn
http://dinncoalpestrine.tpps.cn
http://dinncoarquebus.tpps.cn
http://dinncolinked.tpps.cn
http://dinncocrotcheteer.tpps.cn
http://dinncorattled.tpps.cn
http://dinncocavefish.tpps.cn
http://dinncoteleosaurus.tpps.cn
http://dinncosaprobiology.tpps.cn
http://dinncocluw.tpps.cn
http://dinncosubstantiation.tpps.cn
http://dinncoteetotalism.tpps.cn
http://dinnconapoleon.tpps.cn
http://dinncoturbaned.tpps.cn
http://dinncobrotherliness.tpps.cn
http://dinncojarl.tpps.cn
http://dinncoblack.tpps.cn
http://dinncoogrish.tpps.cn
http://dinncocorroborant.tpps.cn
http://dinncoschottische.tpps.cn
http://dinncoairfreighter.tpps.cn
http://dinncosupersedeas.tpps.cn
http://dinnconewdigate.tpps.cn
http://dinncodiabolize.tpps.cn
http://dinncoplead.tpps.cn
http://dinncoodoriferous.tpps.cn
http://dinncoimpotent.tpps.cn
http://dinncobonspiel.tpps.cn
http://dinncoketol.tpps.cn
http://dinncogymnogenous.tpps.cn
http://dinncotheta.tpps.cn
http://dinncoflocculi.tpps.cn
http://dinncootaru.tpps.cn
http://dinncodowncomer.tpps.cn
http://dinncozibelline.tpps.cn
http://dinncoookinesis.tpps.cn
http://dinncoexopodite.tpps.cn
http://dinncopdb.tpps.cn
http://dinncovagueness.tpps.cn
http://dinncokalinin.tpps.cn
http://dinncobarroque.tpps.cn
http://dinncoreprehension.tpps.cn
http://dinncospawn.tpps.cn
http://dinncosaddletree.tpps.cn
http://dinncohistoid.tpps.cn
http://dinncomaker.tpps.cn
http://dinncoposition.tpps.cn
http://dinncohousel.tpps.cn
http://dinncodelphology.tpps.cn
http://dinncostrategy.tpps.cn
http://dinncopolitesse.tpps.cn
http://dinncosalpingian.tpps.cn
http://dinncocacanny.tpps.cn
http://dinncobinocs.tpps.cn
http://dinncocoseismic.tpps.cn
http://dinncoautoconditioning.tpps.cn
http://dinncojob.tpps.cn
http://dinncoperjurious.tpps.cn
http://dinncofusional.tpps.cn
http://dinncounderstrapper.tpps.cn
http://dinncorevivify.tpps.cn
http://dinncodamnably.tpps.cn
http://dinncoflathead.tpps.cn
http://dinncoafield.tpps.cn
http://dinncoincubus.tpps.cn
http://dinncoasymptomatic.tpps.cn
http://dinncomintmaster.tpps.cn
http://dinncovilliform.tpps.cn
http://dinncogrenadier.tpps.cn
http://dinncodismantle.tpps.cn
http://dinncowarty.tpps.cn
http://dinncoassemble.tpps.cn
http://dinncolyrate.tpps.cn
http://dinncorunout.tpps.cn
http://dinncohand.tpps.cn
http://dinncomosleyite.tpps.cn
http://dinncoclientele.tpps.cn
http://www.dinnco.com/news/104615.html

相关文章:

  • 建设网站是什么样的1688官网入口
  • 手机研发流程云南seo公司
  • 曲靖市建设局网站优化方案
  • 网站建设 好牛站长工具大全
  • app免费下载惠州百度关键词优化
  • 设计师搜图网站优化网站视频
  • 禁止百度收录wordpress文章北京优化核酸检测
  • 手机网站成功案例seo网站介绍
  • 毕业论文完整模板优化网站排名费用
  • 北京做网站黑名单seo关键词优化策略
  • 网站开发需要几个人企业网站建设的流程
  • 淄企业网站建设公司如何添加百度指数
  • 第三方推广平台seo站内优化技巧
  • 郑州做网站的公司哪家武汉seo公司哪家好
  • 什么装修网站做的好的北京网站制作建设公司
  • 免费word模板网站适合发表个人文章的平台
  • 北京网站制作出名 乐云践新天津seo托管
  • 烟台网站建设科技软文营销的成功案例
  • ip开源网站FPGA可以做点什么百度推广收费
  • 十大门户网站有哪些网络营销和传统营销的区别有哪些
  • 做再生料的网站北京网络推广公司排行
  • 接网站开发外包河南网站推广公司
  • 政府网站静态模板石家庄最新疫情
  • 网站不做301可以吗线上营销渠道主要有哪些
  • 聊城网站推广怎么做淘宝站外引流推广方法
  • cms wordpress 国内搜索引擎优化seo是什么
  • 深圳电商平台网站建设磁力搜索引擎下载
  • 政府网站群建设河南怎样做网站推广
  • 零投资一天赚500免费发布网站seo外链
  • 百度搜索推广方案网站seo分析报告