首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Go语言实现一个简单的聊天机器人

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

作者头像
Zoctopus
发布2018-07-24 16:10:48
1.2K0
发布2018-07-24 16:10:48
举报

一、介绍

目的:使用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.")
        }
    }
}

参考资料

bufio

os

strings

fmt

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、介绍
  • 二、回顾
  • 三、程序(初版本)
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档