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

网站内容被攻击该怎么做个人可以做推广的平台有哪些

网站内容被攻击该怎么做,个人可以做推广的平台有哪些,网络营销的推广方式有哪些,winserver wordpress文章目录 吃透 Golang 基础:数据结构之数组概述初始化访问和赋值小结参考资料 吃透 Golang 基础:数据结构之数组 对于 Golang 当中的顺序数据结构,使用频率最高的当然是切片,因为切片非常的灵活。与之相对比,数组常常会…

文章目录

  • 吃透 Golang 基础:数据结构之数组
    • 概述
    • 初始化
    • 访问和赋值
    • 小结
    • 参考资料

吃透 Golang 基础:数据结构之数组

在这里插入图片描述
对于 Golang 当中的顺序数据结构,使用频率最高的当然是切片,因为切片非常的灵活。与之相对比,数组常常会被忽略,因此通过这个文档来回顾一下与 Golang 数组相关的重要概念。

概述

数组是由相同类型元素的集合组成的数据结构,计算机会为数组分配一块连续的内存来保存其中的元素,我们可以利用数组中元素的索引快速访问特定元素,常见的数组大多都是一维的线性数组,而多维数组在数值和图形计算领域却有比较常见的应用。

在 Golang 当中,我们通常通过以下方式来初始化某个类型的数组,需要注意的是,一个数组类型(此处需要重点强调类型二字)由两部分组成,第一部分就是数组存储的元素类型,而第二部分是数组的长度。没错,Golang 当中数组的长度也是数组类型的一部分。

初始化

我们通常可以通过如下形式来初始化数组,分别使用 var 和“冒等”的直接初始化方法:

a := [10]int{}	// 新建一个长度为 10 的 int 型数组
var b [5]byte	// 新建一个长度为 5 的 byte 类型数组, 使用零值初始化

需要特别注意的是,Go 的 make 关键字只能用来初始化切片,而不能用来初始化数组。

此外,还可以通过上限推导的方式初始化一个数组,一个例子如下:

arr := [...]int{1, 2, 3, 4, 5, 6, 7}	// 通过上限推导初始化一个长度为 7 的数组
数组的长度在初始化时一旦确定则不能给修改。与之相比,切片总是可以通过 append 的方式来动态扩容。「需要注意切片类型的数据结构包含三部分,分别是指向底层数组的 Pointer,以及常量 len 和 cap,因此使用 append 以及传参时需要注意 slice 底层潜在的坑,这个将放在之后与 slice 相关的专题当中回顾」

访问和赋值

无论是在栈上还是静态存储区,数组在内存中都是一连串的内存空间,我们通过指向数组开头的指针、元素的数量以及元素类型占的空间大小表示数组。如果我们不知道数组中元素的数量,访问时可能发生越界;而如果不知道数组中元素类型的大小,就没有办法知道应该一次取出多少字节的数据,无论丢失了哪个信息,我们都无法知道这片连续的内存空间到底存储了什么数据。

数组访问越界是非常严重的错误,数组和字符串的一些简单越界错误可以在编译期间发现,但如果使用变量去访问数组或字符串,编译器就无法提前知道错误,而是推迟到运行时才能检测出具体的错误。「这当然不难理解,比如在 Goland 这种 IDE 中,IDE 可以在编译期检测出显式的数组越界错误,从而导致编译都通过不了。而如果在 for loop 中使用变量访问数组且发生了越界,那么只有真正在运行时产生越界之后才会报错」

如果数组下标没有越界,那么编译器会先获取数组的内存地址及访问的下标,将指针中的元素加载到内存。

对于数组赋值操作,同样需要先计算出数组中元素对应的内存地址,再使用新的值对其进行替换。

小结

数组是 Go 最重要的数据结构,Slice/Map/Channel 的底层多多少少都会与数组产生关联。

根据数组的底层实现原理,我们了解到数组的访问和赋值需要同时依赖编译器和运行时,它的大多数操作在编译期间会转为直接读写内存,在中间代码生成期间,编译器还会插入运行时方法runtime.panicIndex调用防止发生越界错误。

参考资料

  • https://draven.co/golang/docs/part2-foundation/ch03-datastructure/golang-array/#fn:1
http://www.dtcms.com/wzjs/454836.html

相关文章:

  • 电子商务网站基本功能百度公司招聘岗位
  • 传统网站建设架构必应搜索引擎入口
  • 商丘网站制作的流程在线注册免费域名
  • 苏州网站搜索引擎优化西安网站建设推广专家
  • 京建站公司建立网站要多少钱一年
  • 临淄网站制作首选公司宁波优化关键词首页排名
  • redis做网站统计广州疫情最新情况
  • php网站建设制作昆明网络营销公司哪家比较好
  • 网站如何做微信推广方案设计优势的seo网站优化排名
  • 赤峰做网站网站网络优化外包
  • 如何建一个个人的网站培训班招生方案
  • 嘉兴网站排名优化价格营销策划案ppt优秀案例
  • 自己做的网站怎样弄网上世界杯球队最新排名
  • 哪些网做网站比较好爱站网长尾关键词挖掘
  • 单县菏泽网站建设快速建网站
  • 做软装有什么网站找图片百度小程序入口
  • 做的最好的微电影网站有哪些十大免费网站推广平台有哪些
  • 网站建设通知书打开百度搜索
  • 文山市住房和城乡建设局网站深圳谷歌优化seo
  • 网站内容优化的准则营销效果分析怎么写
  • 598网站建设聊城网站开发
  • 网站插入地图网站关键词排名
  • ibm网站导航特效代码平面设计正规培训机构
  • 汽配人网做网站河南靠谱seo电话
  • 网站正在建设html四川企业seo推广
  • 做百度竞价什么网站好百度指数的使用
  • 做消费金融网站价格简单的网页设计源代码
  • html怎么做网站合肥最新消息今天
  • 网络咨询网站百度爱采购怎么推广
  • 企业做网站哪家网站好站长之家seo