• golang array, slice, string笔记


    本来想写一篇关于golang io的笔记,但是在学习io之前必须了解array, slice, string概念,因此将在下篇写golang io.
     
    array:
    数组的长度是该数组类型的一部分,例如var buffer [256]byte 的类型是[256]byte, len(buffer)总是返回256.
     
    slice:
    一个slice描述一个数组中连续的一部分,例如var slice = buffer[100:250]。slice也可以从slice产生,如var slice2 = slice[5:10],其中slice的type是[]byte。slice并不真正存储数据,它只是包含一个指向数据的pointer,你可以把它当成这样的一个结构:
    type sliceHeader struct {
        Length        int
    
        Capacity      int
        ZerothElement *byte
    }
    
    其中Capacity等于slice所指的数组的大小减去ZeroElement的index。我们还可以用make函数来创建slice,slice := make([]int, 10, 15)其中第二个参数是slice的长度,第三个参数是slice的Capacity。或者用直接量slice := []int{0, 1, 2, 3, 4}。
    
    string:
    可以把string看作一个只读的byte slice。例如var sample string = "xdbxb2x3d" 是一个长度为3的byte slice.对于其中非ASCII的unicode数据将被格式化为UTF-8。
    Code point指一个unicode值,由几个byte组成。一个character字符可以由几个Code point,甚至不同的Code point组成。golang使用rune来代表code point,类型为int32,在golang中character都被normalize成一个rune。
  • 相关阅读:
    -bash: fork: Cannot allocate memory 问题的处理
    Docker top 命令
    docker常见问题修复方法
    The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
    What's the difference between encoding and charset?
    hexcode of é î Latin-1 Supplement
    炉石Advanced rulebook
    炉石bug反馈
    Sidecar pattern
    SQL JOIN
  • 原文地址:https://www.cnblogs.com/daizuozhuo/p/4231992.html
Copyright © 2020-2023  润新知