用go语言实现一个简单的聊天机器人(代码片段)

~不会飞的章鱼~ ~不会飞的章鱼~     2022-11-22     468

关键词:

一、介绍

目的:使用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

 

自然语言处理(nlp)聊天机器人模块实现(代码片段)

【自然语言处理(NLP)】聊天机器人模块实现(文章目录)前言(一)、任务描述使用PaddleNLP内置的生成式API的功能和用法,并使用PaddleNLP内置的plato-mini模型和配置的生成式API实现一个简单的闲聊机器人。(二)、环境配置本示例基于... 查看详情

编程实践用go语言实现一个sqldsl(代码片段)

文章目录用go语言实现一个SQLDSL一、编写SQLDSL二、使用工厂模式构造SQLDSL三、使用反射实现SQLDSL四、小结用go语言实现一个SQLDSLGo语言是一种广泛使用的编程语言,特别是在Web开发领域。它的优势是高效、简单、易于编写、易于理... 查看详情

go简单聊天(代码片段)

用Go简单实现网络通信其余功能可以在这个模型上继续加,比如增加通信人数,实现聊天server端packagemainimport("fmt""log""net""os")funcbroadcaster()//功能代完善funchandleCoon(connnet.Conn)msg:=""fordata:=make([]byte,1024)msg_read,err:=conn.Read(da 查看详情

go语言实现聊天室(代码片段)

go语言实现聊天室聊天室分为服务端和客户端。第一部分为服务端代码,第二部分为客户端代码。一、服务端代码//chatroomserverpackagemainimport("fmt""net")//定义函数checkError,用来错误处理funccheckError(errerror)iferr!=nilpanic(err)//定义一个函... 查看详情

使用python实现一个简单的智能聊天机器人(代码片段)

...明最近两天需要做一个python的小程序,就是实现人与智能机器人(智能对话接口)的对话功能,目前刚刚测试了一下可以实现,就是能够实现个人与机器的智能对话(语音交流)。总体的思路大家可以设想一下,如果要... 查看详情

[go]用go语言实现区块链工作原理(代码片段)

基本原理这里就不写了,只写一个简单demo的实现首先得有一个区块用来存储区块头和区块体typeBlockstructVersionint64PreBlockHash[]byteHash[]byte//区块体内是不存储HASH值的,这是网络中某个节点在计算时存储在息本地的,这里是为了方便... 查看详情

编程实践用go语言实现hashset(代码片段)

用go语言实现HashSet本文介绍如何使用Go语言来实现一个HashSet,HashSet是一种特殊的数据结构,它具有快速插入、查找及删除元素的能力,它的实现原理是哈希表。为什么要使用HashSetHashSet是一种非常有效的高性能数据结构,它的查... 查看详情

go语言实践_实现点对点聊天室(代码片段)

一、目的使用Go语言实现一个服务器端与客户端的聊天室。软件:Goland,Go1.9 二、思路1,首先启动服务器端,使用listen_socket函数监听IP地址上的客户端连接;2,启动客户端,并向服务器端发送数据,发送结束后端口阻塞,等... 查看详情

用go语言撸一个简易版的区块链(代码片段)

用go撸一个简易版的区块链引言这个最初的版本时多年以前学习go的时候,自己撸的一个简易版本的区块链。不过麻雀虽小,五脏俱全。通过这个代码你了解区块链内部的大概运行机制时没有问题的。比特币底层区块链的... 查看详情

用go语言撸一个简易版的区块链(代码片段)

用go撸一个简易版的区块链引言这个最初的版本时多年以前学习go的时候,自己撸的一个简易版本的区块链。不过麻雀虽小,五脏俱全。通过这个代码你了解区块链内部的大概运行机制时没有问题的。比特币底层区块链的... 查看详情

实现一个的简单的网络聊天程序(代码片段)

  本次实验采用Java语言,编写了一个简单的聊天室程序,可以实现多人之间的聊天。以下将对该程序进行详尽分析,并对比分析该编程语言提供的网络接口API与LinuxSocketAPI之间的关系。1、网络通信相关要素1)协议  通信的... 查看详情

用aiml开发人工智能聊天机器人

借助Python的AIML包,我们很容易实现人工智能聊天机器人。AIML指的是ArtificialIntelligenceMarkupLanguage(人工智能标记语言),它不过是简单的可XML(扩展标记语言)形式。本文的示例代码将带你初步领略如何借助Python创建属于你的人... 查看详情

nlp开发python实现聊天机器人(alice)(代码片段)

1、简介简单来说,聊天机器人是一种可以模拟和处理人类会话(无论是书面还是口头会话)的计算机程序,让人能够与数字设备交互,就像和真人交流一样。不同聊天机器人的复杂度各不相同,简单如通过单行响应回答简单查... 查看详情

python搭建qq聊天机器人极简教程(代码片段)

为了方便管理QQ粉丝群,想着弄一个机器人来进行自动回复,本来想着去某平台去购买结果发现都很贵而且是按年收费,可是群管家又不能满足大规模内容回复的需求,所以只能自己做一个咯。先来看一下效果吧&#... 查看详情

c语言实现一个hello/hi的简单聊天程序并跟踪分析到系统调用(代码片段)

socket编程介绍Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,可以用它们来开发TCP/IP网络上的应用程序。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Sock... 查看详情

go实现简单(命令行)工具:sftp,文檔压解,rds备份,rds备份下载(代码片段)

...密码解压(zip)4.window下调用阿里雲RDSapi查询备份并下载5.GO语言命令行工具技巧首先,写这篇博文的一个出发点是:我无法在window的cmd命令行下实现日期的加减(還有其他問題),当然這不是没有实现的方法,而是实现起来很难维护... 查看详情

题目:用python3实现微信聊天机器人(代码片段)

做微信聊天机器人,实现步骤:获取微信的使用权,即python脚本能控制微信收发信息。python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息。一二两步要用到wxpy库里的各种组件来收发信息&... 查看详情

go语言基础之并发(代码片段)

Go语言中的并发编程——并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因。并发与并行并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。并... 查看详情