问题标签 [slots]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2344 浏览

arrays - 在数组中找到一个空槽并使用它

所以我有一个问题,我在 Squirrel 中已经搞砸了一段时间。我想创建一个遍历数组中所有内容的东西,例如:

并寻找那些是-1的,我只想使用其中一个,首先出现的那个(在这种情况下是3到5之间)。

在我的脚本中,当有人销毁某个对象时,它会将对象 id 设置为 -1 而不是常规数字,因为否则在尝试使用该对象时它会出现错误。真的不知道我是否在解释这一点上做得很好。

另一个例子是当玩家连接到某个游戏服务器时,我们连接了 id 0、1、3 和 4 的玩家,所以当下一个玩家连接时,他们得到 id 2。这就是我对数组的追求。

我已经尝试了几件事,唯一最接近它的是:

但是这个的问题是它只取最后一个 ID 并替换它,所以我们有对象 0、1、2 和 3 如果我要销毁 3 并创建一个新的,没问题。如果我要销毁 0、1 或 2 并创建一个新的,则不会占用该插槽,而是选择 4 号,这样就不起作用了。

感谢您的阅读,希望那里的任何人都可以帮助我。


已解决:
这真的很简单,对于其他有同样问题的人来说,这就是我所做的。现在跟随,这可能会变得非常棘手。
我所做的是我添加了一个“休息”;在 else 语句中,代码如下:

是的,后来我确实撞到了自己的头……

0 投票
1 回答
3996 浏览

cpu-usage - SGE 节点的负载能否超过 CPU 的数量?

我正在 Sun Grid Engine(现在称为 Oracle Grid Engine)集群上运行作业。为了查看我的工作是否因为节点超载而变慢,我尝试检查节点的状态:

现在,load_avg是 103.41,而NCPU只有 64。这应该发生吗?某些作业是否使用 CPU 而不是分配给它们的插槽?

更新:响应查询,配置被上传到http://pastebin.com/hLnJBetS

0 投票
2 回答
906 浏览

c++ - Qt5 将自定义 WindowClose 信号连接到不同的窗口

我正在尝试将一个类的信号连接到另一个类的插槽,但是当我这样做时,我的应用程序在启动时崩溃。我在这里阅读了一些其他帖子和 Qt 论坛,这些帖子没有像这样连接自定义信号,但我认为我连接它们是错误的。任何帮助是极大的赞赏。

管理窗口.h

管理窗口.cpp

主窗口.cpp

0 投票
2 回答
349 浏览

c++ - 为什么连接的信号有参数但插槽没有参数?

Qt 4.8.1,原代码是这样的:

这真的让我很困惑,[问题]我可以在使用 QObject::connect 时将参数传递给 slot 函数吗?这告诉我参数应该匹配,但是这里发生了什么,如果我删除该参数,代码将会出错。

0 投票
1 回答
2056 浏览

python - 可以在具有 __slots__ 的类中定义 __setattr__() 吗?

假设我有一个定义__slots__

我可以__setattr__()为它定义吗?

既然Foo没有__dict__,它会更新什么?

0 投票
2 回答
1093 浏览

python - 是否可以在已经定义了 __slots__ 的类的装饰器中添加 __slots__?

首先让我说我了解插槽和元类在 Python 中是如何工作的。玩弄这两个,我遇到了一个有趣的问题。这是一个最小的例子:

这会产生以下异常:

现在,我知道为什么会发生这种情况了:为插槽创建的描述符x必须能够引用插槽的保留空间。只有 A 类的实例或 A 的子类的实例才有这个保留空间,因此只有那些实例才能使用描述符x。在上面的例子中,元类创建了一个新类型,它是 A 的基类的子类,但不是 A 本身的子类,所以我们得到了异常。很简单。

当然,在这个简单的例子中,以下两个定义中的任一个decorator都可以解决这个问题:

但是这些变通办法与原来的不完全相同,因为它们都将 A 添加为基类。他们可能会在更复杂的设置中失败。例如,如果继承树更复杂,您可能会遇到以下异常:TypeError: multiple bases have instance lay-out conflict.

所以我非常具体的问题是:

有没有办法通过调用来创建一个新类来type修改__slots__现有类的属性,但不将现有类添加为新类的基类?

编辑:

我知道对于我上面的示例,严格的元类是另一种解决方法。有很多方法可以使最小的示例起作用,但我的问题是关于通过new基于现有类创建一个类,而不是关于如何使示例工作。对困惑感到抱歉。

编辑2:

评论中的讨论让我提出了一个比我最初提出的更精确的问题:

是否可以通过调用创建一个类,该类type使用现有类的插槽和描述符,而不是该类的后代?

如果答案是“不”,我会很感激为什么不这样做的消息来源。

0 投票
2 回答
898 浏览

python - __setattr__ 与 __slots__ 用于在 Python 中约束属性创建

我一直在阅读有关如何使 Python 类不那么动态的文章,特别是不允许用户动态创建新属性。我读过重载__setattr__是一个很好的方法,而__slots__不是要走的路。最后一个帖子上的一篇文章实际上表明它__slots__可以破坏酸洗。(谁能证实这一点?)

但是,我只是在阅读 Python 2.2 的最新消息,而属性访问部分实际上建议将__slots__其用于约束属性创建的目的,而不仅仅是像其他人建议的那样进行优化。从 Python 的历史来看,有谁知道它的初衷__slots__是什么?约束变量创建是要被滥用的功能还是错误?人们__slots__在实践中是如何使用的?有很多人看到__setattr__过重载来限制属性创建吗?哪个最好?如果您更熟悉一种方法或另一种方法,请随时发布您所知道的方法的优缺点。另外,如果您有其他解决问题的方法,请分享!(请尽量不要只是重复__slots__已经在其他线程中表达过。)

编辑:我希望避免讨论“为什么?”,但第一个答案表明这会出现,所以我会在这里说明。在有问题的项目中,我们使用这些类来存储“配置信息”,允许用户使用他们的(用户的)参数设置对象的属性,然后将对象传递给程序的另一部分。对象不仅仅是存储参数,所以字典不起作用。我们已经让用户不小心输入了错误的属性名称,最终创建了一个新属性,而不是设置程序期望的属性之一。这未被检测到,因此用户认为他们正在设置参数但没有看到预期的结果。这让用户感到困惑,而且很难发现。

编辑 2,重新酸洗:这些对象将是我们将来想要存储的东西,酸洗似乎是一种很好的方法。如果__slots__显然是最好的解决方案,我们可能会找到另一种存储它们的方法,但酸洗肯定是有价值的,应该考虑在内。

编辑 3:我还应该提到,内存保护不是问题。很少会创建这些对象,因此节省的任何内存都可以忽略不计(例如 3-12 GB 机器上的 10 千字节)。

0 投票
3 回答
236 浏览

java - 关于数组列表中已定义的插槽

我想知道是否可以预先填充数组列表的插槽?例如,可以像这样通过赋值操作来填充 st 数组:

但是如何使用 arraylist 来代替呢?

0 投票
1 回答
584 浏览

qt - 将按钮连接到主窗口插槽

我试图对如何解决这个问题进行大量研究,但一切都与我的情况略有不同,或者没有解决我的问题。我将首先解释我的主要目标。我有一个主窗口,上面有 7 个按钮(除其他外),当您点击每个按钮时,它会关闭当前窗口并打开一个新窗口。所有窗口都有相同的 7 个按钮,因此您可以在每个窗口之间切换。由于所有窗口都有完全相同的 7 个按钮,我想设置一个函数,每个类都可以调用该函数来设置每个按钮并连接到我的 mainwindow.cpp 中的 slot()(在下面的示例中称为 setupSubsystemButtons)。实际的按钮被放置在那里,但它们仅在从我的 mainwindow.cpp 按下时才起作用....当我从不同的类按下它们时,没有任何反应。

主窗口.h

主窗口.cpp

ecsgeneralcommand.h

ecsgeneralcommand.cpp

0 投票
1 回答
1329 浏览

c++ - 使用其他类的“this->close()”不会关闭 Qt 窗口

我将首先解释我的主要目标。我有一个主窗口,上面有 7 个按钮(除其他外),当您点击每个按钮时,它会关闭当前窗口并打开一个新窗口。所有窗口都有相同的 7 个按钮,因此您可以在每个窗口之间切换。由于所有窗口都有完全相同的 7 个按钮,我想设置一个函数,每个类都可以调用该函数来设置每个按钮并连接到我的 mainwindow.cpp 中的 slot()(在下面的示例中称为 setupSubsystemButtons)。但是,我似乎无法使用标准“this->close()”关闭窗口......当我从主窗口转到另一个窗口(主窗口关闭)但当我从不同的窗口说主窗口,不同的窗口不会关闭。建议将不胜感激。

mainwindow.cpp(相关部分)

主窗口.h

ecs 通用命令窗口

ecsgeneralcommandWindow 标头