zoukankan      html  css  js  c++  java
  • go语言常用内置函数

     

    close

    func close(c chan<- Type)

    close用于关闭一个channel,使用close函数要注意以下几点:

    • 关闭一个只接受的channel会导致错误
    • 在一个已经关闭的channel上发送数据会导致panic
    • 关闭一个nil channel会导致panic
    • 在一个channel关闭之后,如果channel已经没有剩余数据等待接受了,这时候如果继续接收,会返回一个channel对应数据类型的nil value,如果接收的时候使用多返回值,第二个参数表示一个channel是否已经关闭。

    len、cap

    len:获取容器已存储的元素个数,不是容器的容量。

    func len(v Type) int

    cap:获取容器的最大存储元素的容量。

    func cap(v Type) int

    len和cap都接收多种类型的参数,返回值是int类型,具体接收哪些类型的参数以及返回的值的含义见下表

    len,cap的返回值满足如下条件:

    • 0<=len(s)<=cap(s)
    • slice,map,channel的nil值的len为0
    • slice,channel的nil值的cap为0

    append

    append函数可以为切片动态添加元素,然后返回新的切片变量。

    func append(slice []Type, elems ...Type) []type
    

    slice为需要追加的源切片,elems为可变参数列表,返回值为追加后的切片。
    在调用此函数时,通常需要以slice接收追加后的返回切片,否则slice仍为追加前的数据。

    实例:

    var a []int
    a = append(a, 1) // 追加1个元素
    a = append(a, 1, 2, 3) // 追加多个元素, 手写解包方式
    a = append(a, []int{1,2,3}...) // 追加一个切片, 切片需要解包
    

    不过需要注意的是,在使用 append() 函数为切片动态添加元素时,如果空间不足以容纳足够多的元素,切片就会进行“扩容”,此时新切片的长度会发生改变。

    delete

    delete函数用于删除map中对应key的键值对,如果map中不存在该key,则什么也不做

    func delete(m map[Type]Type1, key Type)
    

      

    new

    new函数用来分配内存,一般是一个参数,参数为类型,它的返回值是一个指向新分配类型的指针,并且内存置为零。

    func new(Type) *Type 

    new经常用来初始化结构体。

    make

    func make(Type, size IntegerType) Type

    内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上)。
    跟 new 相同的是,第一个参数也是一个类型,跟 new 不同的是,make 返回类型的引用而不是指针,而返回值也依赖于具体传入的类型。

      m>=n,且n和m必须是整型且不能为负数。

    copy

     copy() 可以将一个数组切片复制到另一个数组切片中,如果加入的两个数组切片不一样大,就会按照其中较小的那个数组切片的元素个数进行复制。

     srcSlice 为数据来源切片,destSlice 为复制的目标(也就是将 srcSlice 复制到 destSlice),目标切片必须分配过空间且足够承载复制的元素个数,并且来源和目标的类型必须一致,copy() 函数的返回值表示实际发生复制的元素个数。

    copy( destSlice, srcSlice []T) int

    实例:

    slice1 := []int{1, 2, 3, 4, 5}
    slice2 := []int{5, 4, 3}
    copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中
    copy(slice1, slice2) // 只会复制slice2的3个元素到slice1的前3个位置
    

      

    complex

    complex 用于创建一个复数并返回。

    func complex(r,i FloatType) ComplexType

    参数列表中r 为复数的实部,i 表示为复数的虚部。

    real

    func real(c ComplexType) FloatType

    real函数用于获取一个复数的实部。

    imag

    func imag(c ComplexType) FloatType

    imag函数用于获取一个复数的虚部。

    panic

    func panic(v interface{})

    panic 表示进程内的错误。panic 的原因来自于代码的逻辑 bug,比如强制类型转换失败,比如数组越界。这个代表了程序员的责任不到位,导致了程序的panic。
    error 代表进程外的错误。比如输入符合预期。比如访问外部的服务失败。这些都不是程序员可以设计控制的。这些情况的错误处理是业务逻辑的一部分。

    golang中提供panic用于错误处理。 

    panic,直译为运行时恐慌,当panic被抛出异常后,如果我们没有在程序中添加任何保护措施的话,程序就会打印出panic的详细情况之后,终止运行。

  • 相关阅读:
    MySQL中TIMESTAMP和DATETIME区别
    图片标签的alt与title区别
    DEDE自带的采集功能,标题太短的解决方法
    Modernizr——为HTML5和CSS3而生!
    InnoDB,MyISAM,Memory区别
    Innodb,MyIsam,聚集索引和非聚集索引
    聚集索引与非聚集索引的总结
    程序kill -9与kill -15的区别,以及回调函数的作用
    linux 信号 SIGINT SIGTERM SIGKILL区别
    oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令
  • 原文地址:https://www.cnblogs.com/-wenli/p/12573751.html
Copyright © 2011-2022 走看看