问题标签 [side-effects]

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 投票
2 回答
123 浏览

c++ - 创建作为抽象类型对象传递的对象

为了使用多态性,我有一个由几个具有不同内存占用的具体类实现的抽象类。

第一个具体类:

另一个具体类:

我想要做的是声明一个抽象类型的对象abstractFoo并将它作为参数传递给一个函数,该函数将它创建为一个具体类型concreteFoo1concreteFoo2. 我首先使用通常的方式,在参数中传递一个指针:

输出是:

问题是我不能初始化foo为抽象类型的对象,如果我初始化为concreteFoo1,就像我在这个例子中所做的那样,foo指针仍然指向它,即使在调用createFoo方法之后也是如此。

为了使其工作,我被告知将指针传递给参数中的指针:

输出:

好吧,这个解决方案有效,但我对此不太满意:我仍然无法创建指向抽象类型的指针,所以我必须构造一个我不会使用 in 的对象astractFoo* foo = new concreteFoo1(),并且分配给它的内存永远不会释放,所以我想我会以内存泄漏结束。

有没有办法在AbstractFoo**不构造对象的情况下创建一个指向抽象类型指针的指针?

那么,你能确认双指针是我问题的正确解决方案吗?如果是,你能回答我的两个问题吗?如果没有,我该怎么办?

0 投票
2 回答
340 浏览

side-effects - 副作用和深奥的语言

作为关于这个问题的评论中讨论的一个分支。我想问一下副作用和深奥功能之间的关系。具体来说:

1)你可以使用 ook/brainfuck 访问 gpu(并导致图形副作用)吗?

2)你可以使用空格进行系统调用吗?

3)本质上归结为,您可以使用任何图灵完整语言引起所有常见的副作用吗?

4)额外问题:如果可能的话,你能提供一个工作示例/代码的链接吗?

0 投票
3 回答
104 浏览

c++ - 副作用不起作用

我创建了一个用于网络的缓冲区类,并使用副作用来获取缓冲区指针以及大小。我创建了一个简单的测试,它显示与类的 getptr() 函数相同的行为。

当我从 testrecv() 函数中查看变量时,大小是留在堆栈上的一些随机值。由于 getbuf() 的副作用,testrecv() 中的大小不应该为 100 吗?

0 投票
5 回答
300 浏览

python - 如何在python中正确使用递归和副作用

在树形结构中,我试图找到一个分支的所有叶子。这是我写的:

我不知道为什么,但对我来说感觉不对。它有效,但我想知道是否有更好的方法来使用递归而不创建heads参数。

0 投票
4 回答
2210 浏览

haskell - 为什么应用函子可以有副作用,但函子不能?

问这个问题我感觉很傻,但我一直在想这个问题,但我找不到任何答案。

所以问题是:为什么应用函子可以有副作用,但函子不能?

也许他们可以,而我只是从未注意到...?

0 投票
2 回答
29 浏览

rest - 如何在 REST API 中创建堆栈?

我正在使用分布式执行服务器。我决定在服务器上使用基于 HTTP 的 REST API。客户端将连接到服务器并获取下一个要完成的任务。显然我需要“更新”检索到的任务以确保它只被处理一次。GET 不应该有任何副作用(例如更改检索到的资源的状态)。我可以使用 POST(更新资源),但我还需要检索它。我在想我可以有一个 URL,POST 将任务标记为“已声明”,然后 GET 将任务标记为已检索。不幸的是,我再次对 GET 产生了副作用。这只是在 REST 中不起作用吗?我可以有一个“功能”资源来做到这一点,但不想在没有一点研究的情况下放弃范式。

帕特奥

0 投票
1 回答
404 浏览

jquery - 如何将剪辑切换效果添加到 jquery 的静态位

我对 jquery 还是很陌生,我一直在尝试将“剪辑”幻灯片打开效果添加到我拥有的静态 jquery 中。

这就是我想要的效果...

http://www.tutorialspoint.com/cgi-bin/practice.cgi?file=jquery_142

这是我的代码:

你可以在这里看到它的作用:

http://jsfiddle.net/greggb/8gfEZ/1/

对此的任何帮助都会很棒,我已经尝试了很多论坛,但我无法理解如何做到这一点。

0 投票
2 回答
456 浏览

python - 循环内的副作用会影响其生成器吗?

在 Python v2.7 中,我遇到了一个关于生成器的for语句,for其中在循环体中,作为for生成器源的项目受到了副作用:

我的问题是重叠的副作用是否应该影响for发电机?我希望不是,但如果是这样,那到底是什么意思?如果我已经处理了第一个匹配元素并且现在被替换overlaps,那么for索引是否会指向新值的下一个位置overlaps

0 投票
2 回答
1955 浏览

scala - 为什么`Source.fromFile(...).getLines()`在我迭代之后是空的?

(line <-lines) 如此具有破坏性,这让我感到非常惊讶!它完全展开线迭代器。因此,运行以下代码段将使 size = 0 :

像这样隐藏的副作用是正常的 Scala 实践吗?

0 投票
1 回答
155 浏览

rest - REST 中 PUT 操作的幂等性要求的范围是什么?

假设我有一个像这样序列化为 JSON 的对象:

现在,假设我有一个http://absoluteTruth.foo/ {id} (PUT) URI 来编辑这个对象。如果我使用包含以下内容的消息正文调用它:

面对(不可能)试图改变其他两个值的请求时,幂等性的要求是什么?一方面,我可以看到上面的 PUT 请求应该产生一个这样序列化的对象:

这样,无论其他人做什么,我的 PUT 操作总是产生相同的输出。不幸的是,这对最终用户提出了要求,即他们执行 GET、更改接收到的数据并发回。(Rich Hickey 可能会告诫您完成各个字段的更新。)另一方面,我可以看到它可能会导致:

因为我们可以说“状态”和“外观”的值的变化不属于 PUT 的副作用,当它被调用时只指定了“名称”参数。但是,从后续调用http://absolutetruth.foo/ {id} (PUT) 中返回的内容可能会不时发生变化,例如,如果其他人停下来对 Michael nee' Mike 的长相评分更高。

虽然我怀疑这不是一个惊天动地的问题,但我读过的各种 RFC,包括 2616,都不清楚这一点。我倾向于认为使用 {"Name" : "Michael"} 的 PUT 足够幂等,如果它不理会所有其他值,而不是压平它们。任何人都有权威来源的明确答案?