问题描述
我正在使用JavaScript API编写discord机器人,但我不确定是否可以使用,但会带来巨大的优化。
现在现在,我要在我的机器人中添加一个Rock Paper Scissors迷你游戏,我需要将用户的猜测(聊天中发送的表情符号)与其自己的猜测(之间的随机数)进行比较0-2代表所选择的表情符号),现在我有一行if else
。
例如,代替
if(botGuess == 0 && msg.content.includes("/*unicode fist*/"){
//tie
}
我把它放在Switch语句中……有点像这样?
switch(botGuess,msg){
case botGuess = 0,msg.content.includes("/*unicode fist*/"):
//tie
break;
}
我只是想了一段时间,这有可能吗,如果可以的话,我做对了吗?截至目前,我对if else语句进行了修改,并切换到我上面所想到的高级switch语句可以使我省心。
编辑:感谢Simperfy,我找到了一种解决方法。我将两个变量都连接成一个字符串,并将它们都视为一个变量。
例如
var guesses = botGuess + "|" + msg.content;
switch(guesses){
case guesses.contains("0" && "/*unicode_fist*/"):
//tie
break;
}
解决方法
switch语句只能支持单个数据单元。但是,您可以将两个数据单位合并为一个。在javascript中,您可以通过基本乘法来做到这一点:
switch (i + 1000 * j)
{
case 1002: ... // i = 2,j = 1
case 3004: ... // i = 4,j = 3
}
请注意,这要求i