zoukankan      html  css  js  c++  java
  • go函数

    go语言有三种类型的函数:

      普通的带有名字的函数

      匿名函数或者lambda函数

      方法

    普通函数声明:

    func 函数名(形式参数列表)(返回值列表){

      函数体

    go语言中既支持安全指针,也支持多返回值。

    strings.ToLower()将字符串变成小写

    strings.ToUpper()将字符串变成大写

    strings.TrimSpace()去除空格

    strings.TrimPrefix(str," ")从头去除字符

    var skillParam = flag.String("skill","","skill to perform")
    // 定义命令行参数skill,从命令行输入--skill可以将=后的字符串传入skillParam指针变量
    if f,ok := skill[*skillParam];ok{}
    // skillParam是一个*string类型的指针变量,使用skillParam获取命令行传过来的值,
       并在map中查找对应命令行参数指定的字符串函数
    go run main.go --skill=aaa

    生成器:

    func playerGen(name string) func() (string, int) {
        hp := 150
        return func() (string, int) {
            return name, hp
    
        }
    
    }
    
    func main() {
        generator := playerGen("dsb")
        name, hp := generator()
        fmt.Println(name, hp)
    }

    可变参数类型:...type

    ...type的类型之内作为函数的参数,是语法糖,可以接受不定数量的参数

    ...interface{}可以传任意参数类型

    func myfunc(args ...int) {
        for _, arg := range args {
            fmt.Println(arg)
        }
    
    }
    
    func main() {
        myfunc(1, 2, 3, 4, 5, 6, 7)
    }

    拼接字符串操作:

    var b bytes.Buffer

    b.WriteString() // 写入字符串数组

    b.String() // 字符串数组

    // 对s进行类型断言(可以对interface{}进行断言,判断变量的实际类型)
    switch s.(type){
    case bool:
        typeString = "bool"
    case string:
        typeString = "string"
    case int:
        typeString = "int"
    }

    11

  • 相关阅读:
    linux相关的常用站点
    基于命令行的网络调试和测试工具
    清除DNS缓存
    数组映射
    react-native 自定义多选
    weex 长按图片保存
    MySql常用总结
    git常用命令
    react-native 自制多选功能
    react-native setState无法保持更新
  • 原文地址:https://www.cnblogs.com/xuezhihao/p/12036493.html
Copyright © 2011-2022 走看看