亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Go(3[數組])

標簽:
Go

数组:var 变量名[len]type

使用场景:

  • 固定需求的时候,使用数组,不可超出指定长度

  • 长度也是数组类型的一部分

  • 底层内存空间是连续的

  • 用来存储常量

  • 数组是一种特殊的字典.....

  • 数组写入,赋值的方式, 数组[索引]=值

  • 数组是值类型,如果copy成另外一个数组,那修改这个数组,原来的数组并不会改变

数组初始化:

    定义:    var 变量名 [len]type

  • 第一种: 

    • var a[5] int = [5]int{1,2,3,4,5}


  • 第二种:

    • ceshi :=[5]int{1,3,4,5}
  • 第三种

    • var b = [5]int{1,3}
  • 第四种(当不可知长度的时候使用 ...),需要注意的是在切片中也有这种用法,不过含义不一样

    • var c = [...]int{1,3,4,5,10}

 

示例:

var a[5]intvar a[5]stringvar a[5]float32var a[5]bool

访问数组中的元素:

  使用下标访问: a[0]访问第一个元素。长度为5的数组访问如下: a[0], a[1], a[2], a[3], a[4]

数组中的长度:

    var a[10]int

    lengh :=len(a)

示例代码拆分部分:

  1. 数组循环:

    1. 格式化%p,用来打印内存地址

    2. & 符号,取变量地址

    3. 尽量用变量来循环

    4. var a [10]intfor i :=0;i<len(a);i++{   fmt.Printf("%p\n",&a[i])}
    5. length:=len(a) 数组长度


  2. 数组初始化:

    1. 定义数组的时候,默认值都是0

    2. 产生另外一个数组,修改这个数组,并不会对原数组进行修改

    3. func test2()  {   var a[5]int  = [5]int {1,2,3,4,5}   var b[5] int   b = a   fmt.Printf("%v\n",b)   b[0] = 200   fmt.Printf("%v\n",b)   fmt.Printf("%v\n",a)}
  3. 数组定义:

    1. 声明数组的时候,需要定义长度和类型!!!

      1. 写法:变量[长度]类型 = [长度]类型[值]

    2. 数组赋值:指定下标来指定元素赋值

    3. %#以go的方式打印

    4. var d [5]string = [5]string{1:"abc",4:"zcq"}//%#  以go的方式打印!!!fmt.Printf("%#%v\n",d)fmt.Printf("%v\n",a,b,c)
  4. 二维数组

    1. var a[8][2]int

    2. func test4()  {   //二维数组   var a[4][2]int   for i:=0;i<4;i++{      for j:=0;i<2;j++{         a[i][i] = (i+1) *(j+1)      }   }   for i:=0;i<4;i++{      for j:=0;i<2;j++{         fmt.Printf("%d",a[i][j])      }      fmt.Println()   }}
  5. 数组赋值:随机数字放入数组

    1. 切记:go是强类型语言,所以类型如果不一样,是编译不过去的

    2. 使用随机数模块,使用time模块

      1. r := rand.New(rand.NewSource(time.Now().Unix())
    3. func test5()  {   //随机数字放入数组   r := rand.New(rand.NewSource(time.Now().Unix()))   var five [100]int   //数组 通过索引来赋值   for i:=0;i<len(five);i++{      //赋值操作      five[i]=r.Int()      //取值操作      fmt.Printf("%d\n",five[i])   }   fmt.Printf("%d\n",five)}
  6. 数组赋值:随机字符串放入数组

    1. go里面是utf-8编码

    2. Sprintf 格式化并返回格式化后的字符串,可直接赋值!!!

    3. func test6()  {      var a [100]string   var b string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"   for i:=0;i<len(a);i++{      var str string      for j:=0;j<len(b);j++{         index :=rand.Intn(len(b))         //Sprintf 格式化并返回格式化后的字符串         str = fmt.Sprintf("%s%c",str,b[index])      }      a[i] = str      fmt.Printf("a[%d]=%s\n",i,a[i])   }}



點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消