一 数据类型分类

    值类型     1  值类型包括基本数据类型,int,float,bool,string,以及数组和结构体(struct)

                    2  值类型变量声明后,不管是否已经赋值,编译器为其分配内存,此时该值存储于栈上

                    3   改变引用对象,不会影响源值

    引用类型 1 引用类型包括指针,slice切片,map ,chan,interface。

                    2  变量直接存放的就是一个内存地址值,这个地址值指向的空间存的才是值

                    3  改变引用对象,会影响原值

二 常用数据类型-数组和切片

    1 使用方法
      1 数组- var 数组名 [元素个数]数据类型->定义 如果元素个数不确定可以用...代替,会自动试别元素个数
      2 切片- var 切片名 []数据类型
          方法1 var arr2 []int(结构体常用定义)- arr2=[]int{1,3,5}(初始化值)
         方法2 var arr2 []int = make([]int,已有个数,总个数)(利用make申请)
   2 循环
     for i:=0 i<=len(数组/切片名):;i++ {
    数组名[i]
       }
   3 理论补充
     1 区分数组和切片的方式很简单,直接看定义时[]是否有内容,有则为数组,无则为切片
     2 切片是引用类型 数组是值类型要区分开来
     3 切片应用场景远远超过数组,推荐直接使用
   4 函数
       append() 给分片扩容
       用法 var test1 []int =[]int{1,2,3}  test1:=append(test1,4,5,6)->必须重新赋值引用,也可以追加切片(切片名...)(是创建新的数组包含分片,所以需要重新引用新数组)
        len() 计算切片大小
        copy(切片1,切片2) 将切片2拷贝到切片1上 只能支持切片拷贝 将代替切片1的相应位置
    5 字符串和切片
       1 字符串可以用切片的形式访问
           stra='wewae'  str[6:]=''
       

相关文章: