gpt4 book ai didi

parsing - 找出调用哪个命令的有效方法?

转载 作者:行者123 更新时间:2023-12-03 10:10:12 25 4
gpt4 key购买 nike

我有一个用Go编写的机器人,该机器人不断解析消息,并具有该机器人的用户可以调用的命令,所有命令都以机器人为前缀#
假设我有几个命令,其中一些是:bot#thing,bot#another,bot#fu,bot#special
为了找出调用哪个命令,我首先检查消息是否以“bot#”作为前缀,如果是,则将消息字符串除以“”(因为某些命令之后可以带有参数),然后将开关应用于找出它是什么命令并调用其适当的功能

if strings.HasPrefix(message, "bot#") {
args := strings.Split(message, " ")
switch args[0] {
case "bot#thing":
//do something...
case "bot#another":
//do something...
case "bot#fu":
//do something...
case "bot#special":
//do something...
//and more cases...
}
}
我的问题是,随着添加更多命令,我认为这样做效率可能非常低,尤其是因为我检查了每条消息的前缀。有没有更有效的方法来解析消息以找出哪些是命令,什么是命令?

最佳答案

使用 map :

var commands:=map[string]func([]string) {
"bot#command1": doCommand1,
"bot#command2": doCommand2,
}

func processMsg(msg string) {
if cmd, ok:=commands[msg]; ok {
args:= // parse arguments
cmd(args)
}
}

关于parsing - 找出调用哪个命令的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65079886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com