Go语言基础(2)|青训营笔记

92 阅读1分钟

咱们接着上回看

指针

基本介绍

  1. 获取变量的地址,用&,var num int ,&num 是取num地址的值
  2. 获取指针类型所指的值,使用*,var prt int,使用prt获取prt指向的值
  3. 案例来咯
var num int = 10
var ptr *int
prt = &num
*prt = 15 
fmt.println("num=",num)
//num=15

值类型和引用类型

值类型和引用类型的说明

  1. 值类型:基本数据类型 int系列,float系列,bool,string,数组和结构体
  2. 引用类型:指针,slice切片,map,管道chan等

值类型和引用类型的使用特点

  1. 值类型:变量直接储存值,内存通常在栈中分配
  2. 引用类型:变量存储的是一个地址,这个地址对应的空间才是存储的值,如果地址内没有东西分配,会被当垃圾由GC回收。

标识符的命名规范

命名规则

  1. 由26个字母,0-9和_组成
  2. 数字不能开头
  3. 大写可以被其他包调用,小写则不能(全局变量)即大写是共有的,小写是私有的
  4. 不能含有空格
  5. 不能以系统保留关键字作为标识符

数组

数组定义

var 数组名 [数组大小]数据类型 var a [5]int

数组的遍历

  1. 常规遍历
    var a [5]int=[5]int{0,1,2,3,4}
    for i:=0;i<len();i++{
    fmt.Printf("%v",a[i])
    }
  1. 用for range 遍历
    var a [5]int=[5]int{0,1,2,3,4}
    for index,value:=range a{
    fmt.Printf("%v,%v",index,value)
    }
  1. 数组创建后,不赋值,有默认值 数值类型默认值:0 字符串默认值:“” bool数组:默认值为false
  2. 数组的下标是从0开始的

案例

生成随机五个数放入数组中,并找出最大值的下标
  var intArr[5]int
  var Maxval int = 0
  var Maxin int = 0
  rand.seed(time.Now().UnixNano())
  for i:=0;i<len(intArr);i++{
     intArr[i]=rand.Intn(100)
  }
  for i:=0;i<len(intArr);i++{
  if Maxval>intArr[i]{
     Maxval=intArr[i]
     Maxin =i
  }
  }
  fmt.Printf("最大值是%v,下标为%V",Maxval,Maxin)
  1. 数组的长度是固定的,不能动态变化。