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

做网站程序员百度竞价包年推广是怎么回事

做网站程序员,百度竞价包年推广是怎么回事,网站做描本好处,域名网站搭建文章目录 零、概述一、数组基础1、数组的本质:固定长度的连续存储结构2、声明与初始化3、访问与修改元素 二、数组拷贝与传参1、 值拷贝特性2、指针数组的拷贝3、函数传参(值传递) 三、数组遍历四、多维数组五、数组与切片的区别 零、概述 数…

文章目录

  • 零、概述
  • 一、数组基础
    • 1、数组的本质:固定长度的连续存储结构
    • 2、声明与初始化
    • 3、访问与修改元素
  • 二、数组拷贝与传参
    • 1、 值拷贝特性
    • 2、指针数组的拷贝
    • 3、函数传参(值传递)
  • 三、数组遍历
  • 四、多维数组
  • 五、数组与切片的区别

零、概述

数组核心语法速查表

操作语法示例说明
声明数组var arr [5]int长度5,元素默认0
初始化数组arr := [3]string{"a", "b", "c"}完整初始化
自动推断长度arr := [...]int{1, 2, 3}长度为3
指定索引初始化arr := [4]int{0: 1, 2: 3}索引0→1,索引2→3,其余为0
访问元素value := arr[2]索引从0开始
遍历数组for i, v := range arr { ... }使用for range
多维数组var matrix [2][3]float64二维数组,2行3列

适用场景

  1. 需要固定长度的数据集合:如存储月份天数、矩阵数据。
  2. 性能敏感场景:连续内存结构适合缓存优化,访问速度快于切片。
  3. 值语义需求:需要确保数据拷贝时的独立性(如游戏棋盘状态)。

注意事项

  1. 越界检查:访问超出索引范围的元素会触发panic,需通过len(arr)判断边界。
  2. 大数组性能:拷贝大数组时性能较低,建议使用切片或指针传递。
  3. 类型一致性:数组长度和元素类型必须完全匹配才能赋值或比较。

 

一、数组基础

1、数组的本质:固定长度的连续存储结构

Go语言中的数组是值类型,具有以下核心特性:

  • 固定长度:声明时必须指定长度,运行时不可增减(长度是类型的一部分,如[5]int[6]int是不同类型)。
  • 连续内存:元素在内存中连续存放,支持高效的索引访问(时间复杂度O(1))。
  • 类型统一:所有元素类型相同,可存储内置类型(如intstring)或自定义类型(如结构体)。

内存结构示例

arr := [4]int{3, 1, 4, 1} // 长度为4的int数组
  • 索引从0开始,每个元素占4字节(int在32位系统占4字节)。
  • 内存地址连续,可通过arr[i]直接访问第i个元素。

 

2、声明与初始化

** 基本声明语法**

var 数组名 [长度]类型 // 未初始化,元素为类型零值
var scores [5]float64 // 长度5的float64数组,默认值全为0
var names [3]string  // 默认值全为空字符串""

 
初始化方式

(1)完整初始化

arr := [长度]类型{1,2, ...} // 显式指定所有元素
primes := [3]int{2, 3, 5} // 长度3,元素为2、3、5

(2)自动推断长度(...

arr := [...]类型{1,2, ...} // 长度由初始化值个数决定
fruits := [...]string{"apple", "banana", "orange"} // 长度3

(3)指定索引初始化

arr := [长度]类型{索引:, 索引:, ...} // 仅初始化指定索引的元素
points := [4]int{0: 10, 3: 20} // 索引0→10,索引3→20,其余为0
// 数组为:[10, 0, 0, 20]

 

3、访问与修改元素

索引访问
语法数组名[索引],索引范围[0, 长度-1],越界会触发运行时panic

arr := [3]int{1, 2, 3}
fmt.Println(arr[0]) // 输出:1
arr[1] = 4          // 修改索引1的元素为4

指针数组
定义:元素为指针的数组,用于存储多个地址。

var ptrs [2]*int // 长度2的int指针数组
a, b := 10, 20
ptrs[0], ptrs[1] = &a, &b // 存储变量地址
fmt.Println(*ptrs[0]) // 输出:10

 

二、数组拷贝与传参

1、 值拷贝特性

数组是值类型,赋值或传参时会完整拷贝所有元素(包括指针数组中的指针值,但不拷贝指针指向的数据)。

arr1 := [2]int{1, 2}
arr2 := arr1           // 拷贝arr1的元素到arr2
arr1[0] = 100          // 修改arr1不影响arr2
fmt.Println(arr2[0])   // 输出:1(原拷贝值)

 

2、指针数组的拷贝

拷贝的是指针值(地址),若多个指针指向同一数据,修改会同步。
示例

str := "hello"
ptrArr1 := [1]*string{&str}
ptrArr2 := ptrArr1       // 拷贝指针值(均指向str)
*ptrArr1[0] = "world"    // 修改str,ptrArr2同步变化
fmt.Println(*ptrArr2[0]) // 输出:world

 

3、函数传参(值传递)

传递数组时,函数接收的是原数组的副本,修改副本不影响原始数组。
示例

func modify(arr [3]int) {arr[0] = 100 // 修改副本
}
func main() {arr := [3]int{1, 2, 3}modify(arr)   // 传递副本fmt.Println(arr[0]) // 输出:1(原始数组未改变)
}

 

三、数组遍历

  1. for循环遍历
arr := [3]string{"a", "b", "c"}
for i := 0; i < len(arr); i++ {fmt.Printf("索引%d: %s\n", i, arr[i])
}
  1. for range遍历
arr := [3]int{10, 20, 30}
for index, value := range arr {fmt.Printf("索引%d: 值%d\n", index, value)
}
// 输出:
// 索引0: 值10
// 索引1: 值20
// 索引2: 值30

四、多维数组

  1. 二维数组
// 声明:[外层长度][内层长度]类型
matrix := [2][3]int{{1, 2, 3}, {4, 5, 6}} // 2行3列

访问元素matrix[行索引][列索引]

fmt.Println(matrix[0][2]) // 输出:3(第1行第3列)
  1. 三维数组
cube := [2][2][2]int{{{1, 2}, {3, 4}},{{5, 6}, {7, 8}},
}

 

五、数组与切片的区别

特性数组(Array)切片(Slice)
长度固定(声明时确定)动态(可扩容)
类型包含长度(如[5]int不包含长度(如[]int
内存分配连续内存,固定大小底层依赖数组,可动态扩展
传参值传递(拷贝所有元素)引用传递(仅拷贝切片头信息)

注意:切片是数组的“视图”,通过arr[:]可将数组转换为切片。

http://www.dtcms.com/wzjs/33914.html

相关文章:

  • 拟定网站建设合同关键词排名怎么做上去
  • 鸿兴网站建设公司百度seo正规优化
  • 建设政府网站多少钱中企动力做网站推广靠谱吗
  • 对建设网站未来发展的建议如何推广普通话的建议6条
  • 最经济 网站建设网站结构优化
  • 中信建设证券官方网站壹起航网络推广的目标
  • wordpress 模板带数据库长沙正规seo优化价格
  • 我做网站啦 圆通导航游戏推广合作
  • 网站服务器安装教程视频教程杭州推广平台有哪些
  • 成都网站建设公司湖南岚鸿b2b免费网站推广平台
  • 微信链接网站怎么做今日国内新闻重大事件
  • 苏州响应式网站建设西安百度推广运营
  • 南京做网站的公司网站结构
  • php律师网站源码百度网盘客服电话24小时
  • 如何制作淘宝客网站扬州seo优化
  • 帮人做网站被派出所抓到徐州杭州网站seo外包
  • 网站建设与运营的论文的范本百度搜索流量查询
  • 谁用腾讯风铃做网站的凤凰网台湾资讯
  • 天猫店铺装修做特效的网站seo工作职责
  • 域名注册的网址长沙关键词优化服务
  • 网站ip被屏蔽怎么办广州seo网站推广优化
  • 线上设计师靠谱吗长沙优化科技
  • 猪八戒托管赏金做网站新手怎么引流推广
  • 现在可以做网站么百度指数的搜索指数
  • 建设银行成都开发中心网站网页制作
  • 毕业论文网站开发需要多少钱sem优化软件哪家好
  • 做外贸自己的公司网站企业seo推广
  • 都有哪些方法做动态网站的静态化厦门seo屈兴东
  • 怎么做卖橘子的网站十大最靠谱培训机构
  • 腾讯云服务器如何建设网站查域名注册详细信息查询