Golang之函数练习

小例题:

复制代码
package main

import "fmt"

/*
函数练习,
可变参数使用

写一个函数add 支持1个或多个int相加,并返回相加结果
写一个函数concat,支持1个或多个string拼接,并返回结果
 */
func add(a int, arg ...int) int {
    sum := a
    for i := 0; i < len(arg); i++ {
        sum += arg[i]
    }
    return sum
}

func concat(a string, arg ...string) (result string) {
    result = a
    for i := 0; i < len(arg); i++ {
        result += arg[i]
    }
    return
}

func main() {
    sum := add(10, 3, 3, 3, 3, 3)
    fmt.Println(sum)
    res:=concat("hello"," ","大屌")
    fmt.Println(res)
}
复制代码

 九九乘法表:

复制代码
package main

import "fmt"
//99乘法表
func multi() {
    for i := 0; i < 9; i++ {
        for j := 0; j <= i; j++ {
            fmt.Printf("%d*%d=%d\t", (i + 1), j+1, (i+1)*(j+1))
        }
        fmt.Println()
    }

}
func main() {
    multi()

}
复制代码

 检测回文(中文):

复制代码
package main

import (
    "fmt"
)

func process(str string) bool {
    t := []rune(str)
    length := len(t)
    for i, _ := range t {
        if i == length/2 {
            break
        }
        last := length - i - 1
        if t[i] != t[last] {
            return false
        }
    }
    return true
}
func main() {
    var str string
    fmt.Scanf("%sd", &str)
    if process(str) {
        fmt.Println("yes")
    } else {
        fmt.Println("no")
    }
}
复制代码

 统计一段字符串,中文,字符,数字,空格,出现的次数:

复制代码
package main

import (
    "bufio"
    "fmt"
    "os"
)

func count(str string) (wordCount, spaceCount, numberCount, otherCount int) {
    t := []rune(str)
    for _, v := range t {
        switch {
        case v >= 'a' && v <= 'z':
            fallthrough
        case v >= 'A' && v <= 'Z':
            //golang里面++是语句,不能写成表达式
            wordCount++
        case v == ' ':
            spaceCount++
        case v >= '0' && v <= '9':
            numberCount++
        default:
            otherCount++
        }
    }
    return
}

func main() {
    reader := bufio.NewReader(os.Stdin)
    result, _, err := reader.ReadLine()
    //如果错误不为空,说明有错,就报错
    if err != nil {
        fmt.Println("read from console err:", err)
        return
    }
    wc,sc,nc,oc:=count(string(result))
    fmt.Printf("word Count:%d\n space count:%d\n number count:%d\n others count:%d\n",wc,sc,nc,oc)
}
复制代码

 

posted @   py鱼  阅读(339)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
阅读排行:
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 用一种新的分类方法梳理设计模式的脉络
点我回主页
点击右上角即可分享
微信分享提示