用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.")
        }
    }
}

 

參考資料

bufio

os

strings

fmt

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM