• 函数


    函数格式:

    func foo( a int, b string )

    参数类型的简写形式:

    在参数列表中,如有多个参数变量,则以逗号分隔;如果相邻变量是同类型,则可以将类型省略

    unc add(a, b int) int {
        return a + b
    }

    函数的多返回值:

    1) 同一种类型返回值

    func typedTwoValues() (int, int) {
        return 1, 2
    }
    a, b := typedTwoValues()
    fmt.Println(a, b)

    2) 带有变量名的返回值

    命名的返回值变量的默认值为类型的默认值,即数值为 0,字符串为空字符串,布尔为 false、指针为 nil 等。

    func namedRetValues() (a, b int) {
        a = 1
        b = 2
        return
    }

    函数变量:

     Go 语言中,函数也是一种类型,可以和其他类型一样被保存在变量中。下面的代码定义了一个函数变量 f,并将一个函数名 fire() 赋给函数变量 f,这样调用函数变量 f 时,实际调用的就是 fire() 函数,代码如下:

    func fire() {
        fmt.Println("fire")
    }
    func main() {
        var f func()
        f = fire
        f()
    }

    匿名函数:

    匿名函数定义格式:

    func(参数列表)(返回参数列表){
        函数体
    }

    匿名函数的两种调用方式:

    第一:

    func(data int) {
        fmt.Println("hello", data)
    }(100)

    第二:

    // 将匿名函数体保存到f()中
    f := func(data int) {
        fmt.Println("hello", data)
    }
    // 使用f()调用
    f(100)

    变参函数:

    参数类型指定:

    // 定义一个函数, 参数数量为0~n, 类型约束为字符串
    func joinStrings(slist ...string) string {
        
    }
    func main() {    
        fmt.Println(joinStrings("pig ", "and", " rat"))    
    }

    参数类型不指定:

    func printTypeValue(slist ...interface{}) string {
        return b.String()
    }
    func main() {   
        fmt.Println(printTypeValue(100, "str", true))
    }
  • 相关阅读:
    Oracle判断对象是否存在sql语句
    Reporting Services 4: Web Service
    C#的16位和32位MD5加密
    龙的传人Xml_javascript分页
    龙的传人——xml_javascript三级联动
    SAE学习笔记1
    java方法重载
    jquery easyui时间微调器
    django支持ajax的post方法
    easyui插件显示问题
  • 原文地址:https://www.cnblogs.com/domestique/p/9978192.html
Copyright © 2020-2023  润新知