• Go语言的基础数据类型


    基础数据类型描述

        go不支持任何类型的隐式转换 所有的都必须显式转换

        支持指针类型变量访问内存空间,但是指针不支持指针运算

        字符串是值类型 默认是空字符("")不是空对象nil

         函数支持多个返回值
          if支持两段的语法格式
          if res,err := func(); err==nil {       }else{    }

         数组结构和切片结构   

        切片数据结构
           len的增长规模是增加一个元素+1
           cap的增长规模是cap*2的增长
           len表示的是切片结构中可以访问的元素个数(已经被初始化)
           cap表示的是切片结构可以容纳元素的总个数

       切片和数组的区别
           切片在使用上就是一个可变长度的数组,通过cap实现动态扩容存储容量
           切片结构共享后端存储内存空间 当后端存储空间进行扩展的时候会创建一个新的连续存储空间并且把原来存储空间的值全部拷贝到新的空间中(s=append(s,100))
           任何一个引用修改值都会影响到其他引用对应的值

           

        map类型结构

          判断map中是否存在3这个key 用来区分map中key不存在和key存在但是值设置为0。if v,ok:=m1[3];ok{}else{}
          map的值可以是一个函数

        字符串类型

           string是一个byte数组      string的byte数组可以存储任何类型的数据(任何类型的数据都可以转换成二进制格式表示)

           

       函数类型

        一等公民。函数可以作为变量的值,函数可以作为参数和返回值
        所有的参数都是值传递 参数的结构是会被全部复制的,但是复制后的参数里包含的指针和参数源对象中的指针指向的是同一个内存空间
       

      可变长参数 

        参数个数不确定 但是所有参数的类型是一致的
        ret :=0 定义并初始化一个变量
        ret =1 给ret赋值
       func Sum(ops ...int) int{} 函数体前面必须加上函数的返回值类型 

     defer延迟执行

        相当于try catch finally 中的finally用途,用于在函数执行完成时在函数返回之前清理某些资源或者释放锁对象。

        不管调用函数的时候是不是发生异常最后都会被执行延迟代码代码

    错误处理机制

        1.没有异常机制
           及早判断异常并返回 。  在函数中先判断并处理异常操作,最后处理正常情况.使代码变得清晰可读
        2.panic和os.Exit退出的区别
           panic异常退出的时候会调用defer指定函数 os.Exit退出时候不会调用
           os.Exit退出时不输出当前调用栈信息 panic退出会输出堆栈信息

    基本运算符操作

      

     字符串和字符编码

         字符串转义符
                 退格          删除前面一个字符
                 换行          前后内容在不同的行输出
                  回车          把光标移动到当前行的开始位置重新输出
                  制表符      相隔的间距是一致的输出内容

     字符串和数字的转换

     数组和切片

        切片是获取数组中的子数组 切片是不可比较的
        切片中元素的地址和原数组中元素的地址是同一块内存

         [3]int {1,2,3}      [...]int {1,2,3}  数组定义
         []int  {1,2,3}     切片定义
        定义数组的时候必须设置数组的长度,没有定义长度的情况就是切片定义

     map和结构体

        map和切片一样默认本身不能进行比较,需要自己编写函数循环读取元素进行比较

  • 相关阅读:
    继承
    反射
    DOS使用笔记
    [LeetCode] Merge Intervals
    [LeetCode] Insert Interval
    [LeetCode] Permutation Sequence
    [LeetCode] Rotate List
    [LeetCode] Text Justification
    [LeetCode] Simplify Path(可以不用看)
    [LeetCode] Edit Distance(很好的DP)
  • 原文地址:https://www.cnblogs.com/yxh168/p/12408800.html
Copyright © 2020-2023  润新知