• 用Go语言实现一个简单的聊天机器人


    一、介绍

    目的:使用Go语言写一个简单的聊天机器人,复习整合Go语言的语法和基础知识。

    软件环境:Go1.9,Goland 2018.1.5。

    二、回顾

    Go语言基本构成要素:标识符、关键字、字面量、分隔符、操作符。它们可以组成各种表达式和语句,而后者都无需以分号结尾。

    • 标识符:程序实体,前者即为后者的名称。
    • 关键字:被编程语言保留的字符序列,不能把它用作标识符。
    • 字面量:值的一种标记法。
    • 操作符==运算符:用于执行特定算术或逻辑操作的符号,操作的对象称为操作数。

    数组:由若干相同类型的元素组成的序列。

    切片(slice):可以看作是一种对数组的包装形式,它包装的数组称为该切片的底层数组。

    函数和方法:一个函数的声明通常包括关键字func、函数名、分别由圆括号包裹的参数列表和结果列表,以及由花括号包裹的函数体。

    func divide(dividend int,divisor ,int)(int,error){
        
    }
    //函数可以没有参数列表,也可以没有结果列表,但空参数列表必须保留括号,而空结果列表则不用
    func printTab(){
        //
    }

    三、程序(初版本)

    代码仓库链接:https://github.com/OctopusLian/ChatRobot

    package main
    
    import (
        "bufio"
        "os"
        "fmt"
        "strings"
    )
    
    func main() {
        inputReader := bufio.NewReader(os.Stdin)  //准备从标准输入读取数据
        fmt.Println("Please input your name:")
        input,err := inputReader.ReadString('
    ')  //读取数据直到碰到 
    为止
        if err != nil{
            fmt.Printf("An error occurred:%s")
            os.Exit(1)  //异常退出
        }else {
            //用切片操作删除最后的 
    
            name := input[:len(input)-1]
            fmt.Printf("Hello,%s! What can I do for you?
    ",name)
        }
        for{
            input,err = inputReader.ReadString('
    ')
            if err != nil{
                fmt.Printf("An error occurred:%s
    ",err)
                continue
            }
            input = input[:len(input)-1]
            //全部转换为小写
            input = strings.ToLower(input)
            switch input {
            case "":
                continue
            case "nothing","bye":
                fmt.Println("Bye!")
            //正常退出
            os.Exit(0)
            default:
                fmt.Println("Sorry,I didn't catch you.")
            }
        }
    }

    参考资料

    bufio

    os

    strings

    fmt

  • 相关阅读:
    第五周总结
    第四周总结
    关于“模仿"和”创新“
    第三周总结
    第九周总结
    第八周总结
    第六周总结
    中国历史上成功的两人合作
    第五周总结
    第四周总结
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/9283643.html
Copyright © 2020-2023  润新知