问题标签 [order-of-execution]

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 回答
5109 浏览

r - r 用于从地址中提取英国邮政编码的正则表达式未排序

我正在尝试使用英国政府在此处提供的正则表达式从 R 中的地址字符串中提取英国邮政编码。

这是我的功能:

根据指导文档,这个正则表达式寻找的逻辑如下:

“GIR 0AA”或一个字母后跟一个或两个数字或一个字母后跟一个必须是 ABCDEFGHJ KLMNOPQRSTUVWXY(即不是 I)之一的第二个字母,然后是一个或两个数字或一个字母后跟一个数字,然后是另一个字母或一个两部分的邮政编码,其中第一部分必须是一个字母,然后是第二个字母,该字母必须是 ABCDEFGH JKLMNOPQRSTUVWXY 之一(即不是 I),然后是一个数字,之后可以选择另一个字母AND 第二部分(与第一部分用空格分隔)必须是一个数字后跟两个字母。允许大小写字符的组合。注意:长度由正则表达式确定,介于 2 到 8 个字符之间。

^我的问题是,当使用没有和锚的正则表达式时,这个逻辑没有完全保留$(因为我必须在这种情况下做,因为邮政编码可以在地址字符串中的任何位置);我正在努力解决的是如何在部分(而不是完整)字符串匹配中保留每个段的字符顺序和数量。

考虑以下示例:

根据指南中的逻辑,邮政编码中的第二个字母不能是“z”(还有其他一些排除项);但是看看当我添加“z”时会发生什么:

...而在这种情况下,我希望输出为NA.

添加锚点(对于不同的用例)似乎没有帮助,因为即使它位于错误的位置,仍然可以接受“z”:

两个问题:

  1. 我是否误解了正则表达式的逻辑和
  2. 如果不是,我该如何更正它(即为什么指定的字母和字符范围不是它们在正则表达式中的位置所独有的)?
0 投票
1 回答
299 浏览

c# - 在 Unity 中先启动一个脚本(脚本执行顺序不起作用)

我在一个名为“binaryStorage”的脚本中处理所有玩家的数据。游戏开始时,在第一个场景中,我已经放了玩家的总分,问题是当处理所有这个场景的脚本试图获取玩家的总分时,它得到了0值(因为它调用了方法“ getPlayerPoints”在脚本'binaryStorage'中,在该脚本被初始化之前)。

为了解决这个问题,我尝试编辑“binaryStorage”的脚本执行顺序,将默认时间从“100”编辑到“90”,但没有任何变化,处理场景的脚本在此之前就开始了。

有任何想法吗?难道我做错了什么?

0 投票
2 回答
334 浏览

c - 在 C 中重新排序对多个 volatile 变量的访问

在这个例子中:

据我所知,C99 编译器不允许对 lines和in重新排序A,因为它们都引用同一个 volatile 对象。 但是线条和功能呢?它们与不同的易失性对象交互。BCsame()
EFdifferent()

  1. 是否允许 C99 编译器重新排序行EF

我无法在标准本身中找到答案,因为第 5.1.2.3 节让我有点困惑。所以如果你能解释一下,我会很高兴的。

我知道这仅涉及编译器的重新排序,不会影响处理器的任何重新排序。

  1. 那么是否有一个标准库(如果实现)提供内存屏障?

  2. 目前我坚持使用C99,但出于好奇:C11有什么变化吗?

0 投票
2 回答
1016 浏览

java - Java中嵌套for循环的执行顺序

找到一个可行的解决方案后,我试图了解为什么我的解决方案不起作用。我添加了最小工作示例(MWE),首先我展示了工作解决方案,然后我在 1. 和 2 展示了一个尝试的解决方案。我手动打印数组的所有元素,然后再次在 for 循环中打印。

由此我得出结论,i首先评估外部 for 循环(带有 counter ),然后评估内部 for 循环(带有 counter q)。我很困惑,想知道我对 Java for 循环的评估顺序的理解是否不正确,或者我是否有遗漏的语法/不同错误。

问题:任何人都可以为 for 循环的评估顺序提出一个原因吗?

0 投票
2 回答
63 浏览

c++11 - 在使用它的同一语句中移动 unique_ptr

做这样的事情安全吗?我不确定执行顺序是否得到保证。

0 投票
3 回答
68 浏览

c - 如何指定在执行结束时执行一条指令?

换句话说:
是否可以延迟某条指令,例如以某种方式延迟printf它在执行的最后执行?

0 投票
1 回答
64 浏览

c - MACRO execution steps in C

I wrote the following code to test MACRO functions:

And the output is:

But I was expecting this output:

Why is the text appearing before the pop? the function func1() is called after it!

How do macro replace instructions in the main code?

0 投票
0 回答
47 浏览

mysql - JOIN 顺序和 WHERE

这里提到了以下查询

Mosty Mostacho 表示 WHERE 在 JOIN 之前执行。

但如果其他来源是这样的,它会说“通常,一旦两个表已经连接,过滤就会在 WHERE 子句中处理”。

所以我很困惑哪一个是对的?我可以用EXPLAIN检查订单吗?如果是,如何?我不明白解释输出中的哪个字段说明了订单。

0 投票
1 回答
553 浏览

mysql - MySQL中函数的执行顺序

我知道 MySQL 的执行顺序是不固定的。但是,我听说它通常是这样的:

  1. FROM, 包括JOINs
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. DISTINCT
  7. ORDER BY
  8. LIMITOFFSET

但是,如果我运行类似COUNT()的功能(例如下面的代码),它什么时候可以执行?以及 MySQL 如何决定将使用函数计算的主题(例如,函数要计算什么COUNT())?我对 MySQL 中, ,等函数的执行顺序目标指定感到困惑AVG()SUM()MAX()

0 投票
2 回答
95 浏览

javascript - 为什么我的代码按顺序执行

我正在尝试使用承诺来确保在稍后尝试使用这些变量之前设置某些属性。

我已经设法拼凑出一些代码,这些代码似乎可以做我想做的事,但考虑到我对 Promise 的了解,这些代码的顺序并不符合我的预期。

创建 promise 函数包装器(我认为)

使用承诺

输出

第一次运行

第二轮

所有后续运行都将遵循该模式。

强制刷新与添加登录具有相同的效果,但也会重新打印之前的值。

我想我只是不明白我在这里构建了什么。主要是它让我感到困惑的时机。为什么它会按照我的预期做,但顺序不同?

编辑:我完成了将 promise 函数包装器添加到 API 回调并用于Promise.all()解析它们,然后只在 then 中呈现页面。基本上,它做了我现在想要的。

我在使用 Promise all 时学到的两件事:

  1. promise.all()如果你有函数包装器,你甚至可以在调用内部将参数传递给它们

  2. 您仍然可以返回返回,但它们位于传递给.then()

答应所有

Promise 函数包装器: