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

新开传奇网站刚开一秒网站推广怎么做

新开传奇网站刚开一秒,网站推广怎么做,外链图片 wordpress,查看wordpress版本号作者:秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。 源码系列专栏:Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign&…

作者:秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。
源码系列专栏:Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign)、Nacos源码系列、RocketMQ源码系列、Spring Cloud Gateway使用到源码分析系列、分布式事务Seata使用到源码分析系列、JUC源码系列
基础系列专栏:30天熟悉GO语言(建设中)
码文不易,如果感觉博主的文章还不错,请点赞👍、收藏 ⭐️支持一下博主哇 🙏
联系方式:Saint9768,加我进技术交流群,一起学习进步📚、freedom✈️🌊

文章目录

  • 一、前言
  • 二、数组
    • 1、数组定义
    • 2、数组初始化
      • 1)使用数组字面量初始化数组
      • 2)GO自动计算数组的长度
      • 3)指定特定元素的值
    • 3、数组内存分析
    • 4、数组使用
      • 1)访问数组元素
      • 2)同类型数组赋值
      • 3)将数组按引用传递
    • 5、数组遍历
  • 三、二维数组
    • 1、定义&赋值
    • 2、初始化
  • 四、总结

一、前言

在这里插入图片描述

Go系列文章:

  1. GO开篇:手握Java走进Golang的世界
  2. 2 Go开发环境搭建、Hello World程序运行
  3. 3 Go编程规约和API包
  4. 4 Go的变量、常量、运算符
  5. 5 Go 基本数据类型
  6. 6 Go 复杂数据类型之指针
  7. 7 Go流程控制之分支结构if、switch
  8. 8 Go流程控制之循环结构for range、goto、break、continue
  9. Go函数全方位解析
  10. Go异常处理机制

Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html

二、数组

在GO语言中,数组是一个长度固定的数据类型,用于存储相同类型的数据

1、数组定义

数组声明时需要指定内部存储的数据的类型,需要存储的元素的数量。数组声明完成之后,每个数组元素的默认值都是对应类型的零值。

数组定义格式:var arrayName [数组大小]数据类型

例如:声明一个包含3个元素的整型数组。

var array 3[int]

2、数组初始化

数组的初始化有三种方式:使用数组字面量、自动计算数组长度、指定特定索引位置元素的值。

1)使用数组字面量初始化数组

初始化一个包含3个元素的整型数组

var arr1 [3]int = [3]int{3,6,9}
fmt.Println(arr1)

或:

var arr2 = [3]int{1,2,3}
fmt.Println(arr2)

2)GO自动计算数组的长度

使用... 代替数组的长度,GO会根据初始化时数组元素的数量来确定该数组的长度。

arr3数组的长度为4。

var arr3 = [...]int{1,3,5,7}
fmt.Println(arr3)

3)指定特定元素的值

在已知数组长度的前提下,可以给数组的特定索引位置指定具体的值。

下面初始化一个长度为3的数组,并乱序指定索引0和索引2位置的元素值分别为3,9。

var arr4 = [...]int{2:9, 0:3}
fmt.Println(arr4)

3、数组内存分析

数组开辟的内存空间是一块连续的内存空间,其访问/修改效率很高。

示例:

package mainimport "fmt"func main() {// 定义数组var arr [3]int32// 打印数组fmt.Println(arr)// arr的内存地址值fmt.Printf("arr的地址为:%p", &arr)fmt.Println()// arr[0]内存地址值fmt.Printf("arr[0]的地址为:%p", &arr[0])fmt.Println()// arr[1]内存地址值fmt.Printf("arr[1]的地址为:%p", &arr[1])fmt.Println()// arr[2]内存地址值fmt.Printf("arr[2]的地址为:%p", &arr[2])
}

输出:
在这里插入图片描述

内存使用解析:

示例中 int32类型的数组arr,内存地址为0xc00001a0c0,则arr[n]的内存地址为 0xc00001a0c0 + 4*n

在这里插入图片描述

4、数组使用

1)访问数组元素

要访问数组里的某个元素,使用[]运算符。

package mainimport "fmt"func main() {arr1 := [3]int{1,2,3}fmt.Println("arr1[0]的值为:", arr1[0])
}

输出:
在这里插入图片描述

2)同类型数组赋值

可以把同样类型的一个数组赋值给另外一个数组。

// 声明一个包含3个元素的整型数组
var arr [3]int32arr1 := [3]int32{1,2,3}// 把arr1的值赋值给arr
arr = arr1

注意:数组长度属于类型的一部分,即:数组变量的类型包括两步分:数组长度和每个元素的类型,只有这两部分都相同的数组,才是类型相同的数组,才能互相赋值。

package mainimport "fmt"func main() {arr1 := [3]int{1,2,3}fmt.Printf("arr1数组的类型为:%T\n", arr1)arr2 := [6]int{1,2,3,4,5,6}fmt.Printf("arr2数组的类型为:%T\n", arr2)
}

在这里插入图片描述
从输出来看:arr1和arr2的类型分别为[3]int、[6]int。

此外,编译器会阻止类型不同的数组互相赋值。
在这里插入图片描述

3)将数组按引用传递

在go中数据属于值类型,默认情况下按值传递,将数组作为参数在函数之间传递时,会进行值拷贝;

package mainimport "fmt"func main() {arr1 := [3]int{1,2,3}// 数组默认按值传递,函数不会改变arr1的元素值changeArrayValue(arr1)fmt.Println("arr1数组为:", arr1)
}
func changeArrayValue(arr [3]int) {arr[0] = 7
}

输出:
在这里插入图片描述

  • 从输出内容可以得知,函数间默认传递数据的方式是按值传递;在子函数(changeArrayValue)中修改数组,不会影响父函数(main)中数组的值。

根据内存和性能来看,在函数见传递数组是一个开销很大的操作。因此我们可以选择使用指针在函数间传递数组。

package mainimport "fmt"func main() {arr1 := [3]int{1,2,3}// 使用指针的方式做引用传递,函数会改变arr1的元素值changeArrayValueByPointer(&arr1)fmt.Println("arr1数组为:", arr1)
}func changeArrayValueByPointer(arr *[3]int) {arr[0] = 7
}

输出:

在这里插入图片描述

  • 将数组以指针的方式传递时,数组都指向同一组数据,子函数中修改数组的元素值,父函数中可以感知到。

5、数组遍历

两种遍历方式:普通for循环、for range。

示例:

package mainimport "fmt"func main() {// 定义数组var scores [4]intscores[0] = 99scores[1] = 97scores[2] = 89scores[3] = 91// 遍历数组// 方法一:普通for循环for i :=0; i< len(scores); i++ {fmt.Println(scores[i])}fmt.Println()// 方法二:for rangefor key,value := range scores {fmt.Printf("第%d个学生的成绩的为:%d\n", key, value)}
}

输出:

在这里插入图片描述

三、二维数组

二维数组、乃至多维数组,本质上只是一维数组中的元素值变成了数组,故多维数组的特性和一维数组保持一致。二维数组的遍历也是两种方式:普通for循环、for range。

此处我们介绍一下二维数组的声明、初始化。

1、定义&赋值

package mainimport "fmt"func main() {// 定义数组var arr [2][3]int32fmt.Println(arr)fmt.Printf("arr的地址为:%p\n", &arr)fmt.Printf("arr[0]的地址为:%p\n", &arr[0])fmt.Printf("arr[0][0]的地址为:%p\n", &arr[0][0])fmt.Printf("arr[1]的地址为:%p\n", &arr[1])fmt.Printf("arr[1][0]的地址为:%p\n", &arr[1][0])// 赋值arr[0][1] = 12
}

在这里插入图片描述

2、初始化

初始化方式和一维数组一样

// 使用数组字面量初始化数组
var arr1 [2][3]int32 = [2][3]int32{{1,2,3},{4,5,6}}
fmt.Println(arr1)

在这里插入图片描述

四、总结

本文内容从数组的定义、初始化 到 数组使用 以及 数组的内存分析。

数组的初始化方式有三种:数组字面量、不定长数组、指定特定元素值;数组的同类型是指两个数组长度相等、元素值类型相等。

另外,数组默认是按值传递,可以使用传递数组指针的方式实现按引用传递。


文章转载自:
http://hypochondriasis.rkdw.cn
http://packinghouse.rkdw.cn
http://march.rkdw.cn
http://epexegesis.rkdw.cn
http://lazzarone.rkdw.cn
http://inearth.rkdw.cn
http://captivate.rkdw.cn
http://opster.rkdw.cn
http://hindostan.rkdw.cn
http://wooftah.rkdw.cn
http://cataclysmal.rkdw.cn
http://jasmine.rkdw.cn
http://quebracho.rkdw.cn
http://oboist.rkdw.cn
http://condy.rkdw.cn
http://pentecost.rkdw.cn
http://paralyse.rkdw.cn
http://particle.rkdw.cn
http://postal.rkdw.cn
http://norsk.rkdw.cn
http://braciole.rkdw.cn
http://protectorship.rkdw.cn
http://blunderingly.rkdw.cn
http://demurrage.rkdw.cn
http://empery.rkdw.cn
http://chitling.rkdw.cn
http://kashrut.rkdw.cn
http://roestone.rkdw.cn
http://curari.rkdw.cn
http://shipway.rkdw.cn
http://ectoderm.rkdw.cn
http://effuse.rkdw.cn
http://involuntarily.rkdw.cn
http://mudslinging.rkdw.cn
http://waiter.rkdw.cn
http://regie.rkdw.cn
http://incapability.rkdw.cn
http://ukase.rkdw.cn
http://retrovirus.rkdw.cn
http://aeropolitics.rkdw.cn
http://eidoptometry.rkdw.cn
http://apophatic.rkdw.cn
http://hickory.rkdw.cn
http://ichinomiya.rkdw.cn
http://caecectomy.rkdw.cn
http://drawgear.rkdw.cn
http://parthenos.rkdw.cn
http://fenestella.rkdw.cn
http://egest.rkdw.cn
http://flashlight.rkdw.cn
http://columnist.rkdw.cn
http://embar.rkdw.cn
http://jennet.rkdw.cn
http://epenthesis.rkdw.cn
http://hydrophobe.rkdw.cn
http://decollation.rkdw.cn
http://lashings.rkdw.cn
http://rhynchocephalian.rkdw.cn
http://tripodal.rkdw.cn
http://manteau.rkdw.cn
http://boong.rkdw.cn
http://caller.rkdw.cn
http://temporal.rkdw.cn
http://faraday.rkdw.cn
http://autocritcal.rkdw.cn
http://expostulatingly.rkdw.cn
http://foxbase.rkdw.cn
http://seismometry.rkdw.cn
http://banner.rkdw.cn
http://lascivious.rkdw.cn
http://outsold.rkdw.cn
http://taction.rkdw.cn
http://inertialess.rkdw.cn
http://pinon.rkdw.cn
http://snivel.rkdw.cn
http://desire.rkdw.cn
http://deeply.rkdw.cn
http://intravasation.rkdw.cn
http://suddenly.rkdw.cn
http://dividable.rkdw.cn
http://tarre.rkdw.cn
http://alderman.rkdw.cn
http://supremacy.rkdw.cn
http://convivially.rkdw.cn
http://applicably.rkdw.cn
http://sprightliness.rkdw.cn
http://shingon.rkdw.cn
http://trouser.rkdw.cn
http://hollywoodize.rkdw.cn
http://subring.rkdw.cn
http://tinman.rkdw.cn
http://apartotel.rkdw.cn
http://masquer.rkdw.cn
http://rowena.rkdw.cn
http://wrought.rkdw.cn
http://inappreciably.rkdw.cn
http://pereonite.rkdw.cn
http://fog.rkdw.cn
http://factorization.rkdw.cn
http://beluga.rkdw.cn
http://www.hrbkazy.com/news/66411.html

相关文章:

  • 响应式网站开发现状手游cpa推广平台
  • 安居客看房网佛山seo关键词排名
  • 咸阳市住房和城乡建设规划局网站双11销售数据
  • 网站关于我们怎么做单页面模板新的营销模式有哪些
  • 打字赚钱seo排名优化的方法
  • 如何做com的网站东莞百度搜索网站排名
  • 网站主机安全百度企业号
  • mac可以做网站服务器吗网店代运营公司靠谱吗
  • 一般做外单的有哪些网站网站排名seo教程
  • 专业团队张伟高清北京seo推广公司
  • 建设网站步骤品牌软文营销案例
  • 用微信微博网站来做睡眠经济域名ip查询
  • 系统难还是网站设计难做体验式营销案例
  • 网站服务器有什么区别b2b网站大全免费
  • 深圳市网站备案需求百度新闻发布平台
  • 深圳装修公司排名前十口碑推荐网站搜索引擎优化报告
  • 怎么键卖东西的网站网站服务器怎么搭建
  • html5 学习网站网页设计与制作步骤
  • 网站做关键词链接有用吗运营seo是什么意思
  • 百度24小时人工客服电话对网站的建议和优化
  • sp怎么做视频网站户外广告
  • 崇州市网站建设在线建站模板
  • 网站开发 java 入门深圳精准网络营销推广
  • wordpress文章内容乱码seo门户网站
  • 协会网站制作网络营销教程
  • 动态网站asp怎么做百度经验首页官网
  • 新农村建设 网站seo常用工具网站
  • 怎么做才能发布网站深圳网站关键词
  • 做网站开发需要学什么软件交换链接适合哪些网站
  • 网站销售策划百度关键词seo排名软件