用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('\n') //读取数据直到碰到 \n为止 if err != nil{ fmt.Printf("An error occurred:%s") os.Exit(1) //异常退出 }else { //用切片操作删除最后的 \n name := input[:len(input)-1] fmt.Printf("Hello,%s! What can I do for you?\n",name) } for{ input,err = inputReader.ReadString('\n') if err != nil{ fmt.Printf("An error occurred:%s\n",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.") } } }
参考资料
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子里和园子外的大大们指正错误,共同进步。或者直接私信我 (^∀^)
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
本博客的所有打赏均将用于博主女朋友的化妆品购买以及养肥计划O(∩_∩)O。我是【~不会飞的章鱼~】!