美文网首页
Golang基础(三)——复杂类型

Golang基础(三)——复杂类型

作者: Eric木子 | 来源:发表于2017-11-30 13:40 被阅读0次

    Golang基础(三)——复杂类型

    @([07] golang)[Go总结]

    [TOC]

    指针

    定义

    指针变量可以指向任何一个值的内存地址。

    声明

    var var_name *var-type

    var p *int
    

    类型*T是指向类型T的值的指针。零值为nil

    指针的使用

    使用流程

    • 定义指针变量。
    • 为指针变量赋值。
    • 访问指针变量中指向地址的值。

    在一个变量前加&号来获取变量的内存地址。
    在指针类型前面加*号来获取指针所指向的内容。

    如果在一个指针类型的变量前面加&号,就会得到一个新的内存地址(指针),这个新的指针指向的是另一个指针,则称这个指针变量为指向指针的指针变量。

    访问指向指针的指针变量值需要加两个*号。

    结构体

    定义:结构体是一个字段的集合
    结构体字段使用点号访问

    数组

    slice (切片)

    slice会指向一个序列的值,并且包含长度信息。
    [ ]T 是一个元素类型为T的切片

    p := []int{2, 3, 5, 7, 11, 13}
    

    切片的定义

    1. var identifier [] type
    2. 通过make()函数定义var slice1 []type = make([]type,len),其中len代表切片初始长度。
    3. 指定切片容量make[]T,length,capacity
    slice截取

    slice可以重新截取,创建一个新的slice值指向相同的数组。
    s[l:h] 表示从数组的l到h-1的slice元素。注意:包含左侧l,但不包含右侧 h

    如果缺省下限则默认下限为0。即 s[:h] 等于 s[0:h]
    如果缺省上限则默认上限为切片长度。即s[l:] 等于 s[l:len(s)]

    slice相关函数

    len() 函数
    获取切片长度
    cap()函数
    获取切片容量
    append() 函数
    向切片追加新元素
    copy()函数
    拷贝切片

    map

    map 是一种无序的键值对的集合,key-value形式。
    map是通过hash表实现的。
    map在使用之前必须用make来创建(不是new);
    值为nil的map是空的,且不能赋值

    • 修改map m的一个元素或者向map m中插入一个元素m[key] = elem
    • 获取map m中的一个元素elem = m[key]
    • 删除元素 delete(m,key)
    • 检测某个键是否存在elem, ok := m[key]如果key在m中ok为true,elem为key对应的value;否则,ok为false,elem为nil

    Range关键字

    range用于for循环中迭代数组、切片、链表或集合的元素。
    在数组和切片中返回元素索引,元素值,在集合中返回key

    相关文章

      网友评论

          本文标题:Golang基础(三)——复杂类型

          本文链接:https://www.haomeiwen.com/subject/fbjvbxtx.html