问题标签 [chaining]
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.
c++ - 链接方法和临时变量,请澄清
大家好!
我有一个类接收指向“圆”的指针(例如),然后通过一些“链接”方法调整其属性。像这样的东西:
现在我想知道这段代码是否合法:
一方面,我认为在“if”表达式中创建的临时对象将一直存在到该表达式的末尾。因此,对“Radius”和“Center”的调用是合法的。但另一方面,使用对临时变量的引用是一种未定义的行为,在我看来,我正在做这种事情——使用 (*this),其中“this”是临时变量。这让我有些疑惑,所以,请澄清一下。谢谢!
php - 过早收集资源垃圾
我用SWIG创建了一个 PHP 扩展,一切正常,但是在链接方法调用时我观察到一些奇怪的垃圾收集行为。例如,这有效:
但是这个段错误:
唯一的区别是第一个创建$results
,而第二个将调用链接在一起。
SWIG 实际上只向 PHP 公开函数并生成 PHP 代理类以与它们交互。这些代理类基本上包含一个资源,该资源与这些函数通常采用的任何其他参数一起传递给每个公开的函数。考虑到这些代理类可能是问题所在,我重新编写了代码以绕过它们,而是直接使用公开的函数。和以前一样,这有效:
再一次,这个段错误:
同样,唯一的区别是第一个创建$results
,而第二个将调用链接在一起。
此时,我在 gdb/valgrind 中调试了一段时间,并确定在InvocationResponse_results
将调用链接在一起时调用返回的析构函数过早。为了观察,我std::cout
在暴露的 C++ 函数及其析构函数的顶部插入了语句。这是没有链接的输出:
我在脚本的末尾打印---
,以便能够区分脚本执行期间发生的情况和之后发生的情况。Hola Mundo
是从printf
。其余的来自 C++。如您所见,所有内容都按预期顺序调用。析构函数仅在脚本执行后被调用,尽管TableIterator
析构函数的调用比我预期的要早。但是,这并没有引起任何问题,并且可能不相关。现在将其与带有链接的输出进行比较:
InvocationResponse_results
如果没有保存到的返回值,它在执行甚至退出调用链(在和之间)$results
之前很高兴地被垃圾收集,这很快就会导致问题,最终导致段错误。Tables_get
Table_iterator
我还检查了在各个地方使用的引用计数xdebug_debug_zval()
,但没有发现任何异常。这是它的输出$results
和$row
没有链接:
并继续$row
链接:
我现在已经花了几天的时间,我几乎没有想法,所以真的任何关于如何解决这个问题的见解将不胜感激。
struts2 - 为什么不推荐 Struts2 中的动作链?
是什么让Struts2 中的动作链成为一个坏主意?
上面的链接建议通过 Redirect Result 或 Redirect Action Result 使用 Redirect After Post。重定向操作是要走的路吗?
javascript - Jquery:如何:当显示 UL 时,让第一个 LI 动画“左”20px,然后到 0px,然后让第二个 LI 这样做,然后是第三个,等等
当 UL.chapters 为 'slideDown' 时,让第一个 'chapters LI' 将 'left' 属性设置为 20px,然后设置回 0px,然后让第二个 LI 做同样的事情,然后让第三个,依此类推. 使用我的代码,它们都在 UL.chapters 向下滑动后直接设置动画,我如何让它们一次执行 1 个动画,第二个直到第一个完成后才开始,等等。
代码更新。
c++ - 异常应该在 C++ 中链接吗?
我刚刚完成了一个 C++ 程序的工作,在该程序中我实现了自己的异常(尽管派生自 std::exception)。当一个异常导致连锁反应、向上传播错误并引发其他异常时,我采用的做法是在模块(读取类)的每个适当步骤中连接错误消息。即旧异常本身被丢弃并创建一个新异常,但错误消息更长。
这可能对我的小程序有用,但我最终对我的方法并不满意。一方面,除了最后一个例外,不保留行号(虽然目前没有应用)和文件名;确实,该信息对第一个例外最感兴趣。
我认为这可以通过将异常链接在一起来更好地处理;即旧异常在新异常的构造函数中提供。但这将如何实施?当它们超出方法的范围时,异常是否会死亡,从而阻止使用异常指针?如果异常可以是任何派生类,如何复制和存储异常?
这最终让我考虑在 C++ 中链接异常是否是一个好主意。也许应该只创建一个异常,然后向其中添加其他数据(就像我一直在做的那样,但可能以更好的方式)?
您对此有何回应?是否应该将由另一个引起的异常链接在一起以保留一种“异常跟踪”——应该如何实现?-- 或者应该使用一个例外并附加额外的数据 -- 应该怎么做?
c++ - 这种链接异常的实现是如何工作的?
我之前问过一个关于如何在 C++ 中链接异常的问题,其中一个答案提供了一个很好的解决方案来解决这个问题。问题是我不懂代码,试图在评论中进行这种讨论实在是太麻烦了。所以我认为最好完全开始一个新问题。
代码包含在下面,我已经清楚地标记了我没有得到的每个部分。代码下方包含对我不理解的内容的描述。代码由Potatoswatter编写。
代码
运行代码给出以下输出:
我不明白的
throw;
insidetry
-block:我以前从未见过这个。我认为唯一throw;
有效的地方是在catch
-block 内重新抛出捕获的内容。那么这有什么作用呢?一些调试显然表明抛出的异常是之前抛出的异常,但那是在一个完全不同的try
块内。事实上,它甚至在struct
声明之外!交换字段:为什么我们需要交换异常字段?仅仅复制指针还不够吗?这是为了防止字段指向的结构过早地从堆中删除吗?
检查
link
和link
链接:我可以理解检查link
不是NULL
(即使删除NULL
指针没有效果),但为什么需要检查link
链接?抛出虚拟异常:为什么需要这个虚拟?它被抛出,但随后又掉了下来。为什么我们需要它作为链条的末端?
jquery - 编写一个返回值的 jQuery 插件
我正在编写一个在某些情况下存储一些数据的 jQuery 插件。
我想以一种非常灵活的方式编写它,我可以更改输入参数以获取插件存储的一些值。
解释:
当我调用 时$("#any").myPlugin()
,我的插件会在里面初始化创建一个div
和一些a
。单击 ana
将.index()
使用该.data()
方法存储它。如果我打电话$("#any").myPlugin("getSelection")
,那么我想获得存储的值.data()
。
我试过的:
创建元素的简单调用:
在这里,我试图获取索引,但没有成功:
那么,有可能做我正在尝试的事情吗?
sql - 查找单表链中的最后一条记录 (SQL Server)
在 SQL Server 2005 中得到了这张表,用于维护合并操作的历史记录:
- FROM_ID 列(整数)
- 列 TO_ID (int)
现在我需要一个以原始 FROM_ID 作为输入的查询,并返回最后一个可用的 TO_ID。
例如:
- ID 1 合并到 ID 2
- 稍后,ID 2 合并到 ID 3
- 稍后再将 ID 3 合并到 ID 4
所以我试图放在一起的查询将作为输入(在我假设的 WHERE 子句中)ID 1,并且应该给我最后一个可用的 TO_ID 作为结果,在本例中为 4。
我想我需要一些递归逻辑,但不知道如何开始。
谢谢 !
马修
jquery - jQuery 链接 .load() 请求?
所以我刚才正在使用 jQuery 的.load(),看起来我们不能像这样配置$("#example").load('./uri.ext #ID')
链接:
$("#example").load('./uri.ext #ID1').load('./uri.ext #ID2').load('./uri.ext #ID3')
如果我们有一个 DIV 模板文件或动态构建页面而不将 HTML 存储在字符串变量或类似的东西中,这当然会很有用......另外,我们可以将其中的几个保存在一个文件中。
理想情况下,我想用该命令嵌套这样的东西:
我遇到的问题有两个。首先,请求的async : true
属性导致下一个请求被触发,并且展示位置没有按预期执行。然后我试图运行嵌套的 $("#example").load('./uri.ext #ID1').ajaxCompletes(function () {/ next .load() in sequence /})` 最终在一个递归陷阱,它没有结束并不断发送对这些文件的请求。
关于如何使用我尝试过的语法/方法来完成我所追求的任何想法?另外,如果这不是问题,只是我对 jQuery 链接的误解,我会非常感谢任何解释。