gpt4 book ai didi

javascript - Bot 不能正确检查 switch case | Discord.js v12

转载 作者:行者123 更新时间:2023-12-04 07:51:12 26 4
gpt4 key购买 nike

我正在检查我的不和谐机器人,试图稍微重构我的代码,我有这个开关盒,它与 if/else 完美配合,但它不能在开关中运行。任何想法为什么?我尝试了很多东西,但我无法让它工作......我也很确定这是我正在做的一个愚蠢的错误......
有问题的案例是未运行的“自我”案例。
所以在正常情况下会是

if (getTag == self) {
// code
}
这是代码。
提前致谢!
var getTag = message.mentions.users.first(); 
var self = message.author.id;
switch (getTag) {
case undefined:
// sample
break;
case self:
// sample
break;
case client.user:
// sample
break;
default:
// sample
break;
}

最佳答案

message.mentions.users.first()返回一个用户对象。这意味着,您不能简单地将其与其他对象或字符串进行比较。
您的第一个案例,undefined会起作用,因为 message.mentions.users.first()如果没有提及,则返回 undefined。
第二个不起作用,因为您尝试将对象与字符串(用户 ID)进行比较。
当您尝试将 User 对象与另一个 User 对象进行比较时,第三个也不起作用。
尽量只比较它的 id属性甚至更好,摆脱 switch 语句并使用 if 语句代替:

const getTag = message.mentions.users.first();
const self = message.author;

if (!getTag) {
// same as case: undefined
return;
}

if (getTag.id === self.id) {
// same as case: self
return;
}

if (getTag.id === client.user.id) {
// same as case: client.user
return;
}

// same as default case

关于javascript - Bot 不能正确检查 switch case | Discord.js v12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66968919/

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