问题标签 [idioms]

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 投票
4 回答
5929 浏览

c++ - 并行编程和 C++

我最近写了很多关于并行计算和编程的文章,我确实注意到在并行计算方面出现了很多模式。注意到 Microsoft 已经发布了一个库以及 Microsoft Visual C++ 2010 社区技术预览版(名为 Parallel Patterns Library),我想知道您一直在使用和遇到哪些常见的并行编程模式可能值得记住?当您使用 C++ 编写并行程序时,您是否有任何遵循的习语和似乎不断出现的模式?

0 投票
12 回答
22063 浏览

unix - 如何在 shell 脚本中操作 $PATH 元素?

有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素?

那就是我想拿

删除替换不破坏变量的/path/to/app/bin其余部分。允许我新元素放在任意位置的额外积分。目标可以通过明确定义的字符串来识别,并且可以出现在列表中的任何位置。

我知道我已经看到了这一点,并且可能可以自己拼凑一些东西,但我正在寻找一种好的方法。便携性和标准化是一个优势。

我使用 bash,但也欢迎在您最喜欢的 shell 中使用示例。


这里的上下文是需要在一个大型科学分析包的多个版本(一个用于分析,另一个用于处理框架)之间方便地切换,该包产生几十个可执行文件,数据存储在文件系统周围,并使用环境变量帮助找到所有这些东西。我想编写一个选择版本的脚本,并且需要能够删除$PATH与当前活动版本相关的元素并将它们替换为与新版本相关的相同元素。


$PATH这与重新运行登录脚本等时防止重复元素的问题有关。


0 投票
16 回答
3218 浏览

c++ - 您从经验中学到了哪些与 C++ 相关的习语、误解和陷阱?

您从经验中学到了哪些与 C++ 相关的习语、误解和陷阱?

一个例子:

甚至知道changeS是一个const成员函数,它是改变对象的值。所以一个 const 成员函数只是意味着它将所有变量都视为 const,并不意味着它实际上会保留所有成员 const。(为什么?成员函数上的 const 关键字将 char *p; 视为 char * const p; 而不是 const char *p;

因此,这意味着 p 不能指向其他东西。并不是说你不能改变 p 的数据。

0 投票
10 回答
29577 浏览

language-agnostic - 什么是编程习语?

我看到“编程成语”这个短语被大家所理解。然而,在搜索结果和stackoverflow中,我看到了一切......

从微:

  • 增加一个变量
  • 代表一个无限循环
  • 交换变量值

中等:

宏:

“编程习语”有一个单一的通用定义吗?由于“编程习语”在许多范围内使用:

  • 微观:句法细微差别或通用句法
  • 介质:常见的样式和图案
  • 宏:作为成语的编程范式

在任何这些范围内使用该短语是否有效?到目前为止,答案都集中在句法习语上。其他的也有效吗?

0 投票
8 回答
1240 浏览

c++ - 使用列名向量生成 sql 语句

我们需要在工作场所定期解决的一个问题是如何根据用户提供的表/列名构建 sql 语句。我要解决的问题是列名之间的逗号。

一种技术看起来像这样。

另一种技术看起来像这样

我对这些实现中的任何一个都不是特别着迷。

我很高兴听到有关解决此问题的其他方法的想法,着眼于使代码更易于阅读/理解/维护。

有哪些替代技术可用?

0 投票
11 回答
2954 浏览

c - 一个有趣的 C 链表习语

我在一个 C 职位的面试中,他们向我展示了一个我以前从未遇到过的成语。这是一个简化涉及链表的各种算法的实现的技巧,我想知道是否有其他人遇到过这个问题。

假设我们定义了一个链表记录:

我们需要一个插入新记录的函数,以便整个列表相对于记录中的值保持排序。下面的实现比我使用的任何东西都简单,尽管可读性较差。

当函数被调用时,r 指向链表的头指针。在 while 循环期间,r 被更新为next指向在我们要放入新记录的点之前的记录字段。函数的最后一行要么更新列表的头指针(如果插入发生在开头)或next上一条记录的字段,这很酷。

几个问题:

  • 这个成语有名字还是在任何文献中提到过?

  • C语言中还有其他类似的吗?

我以为我对 C 非常了解,并且很好地理解了指针和间接寻址,但是这个我花了一段时间才完全理解。

0 投票
41 回答
1137921 浏览

javascript - var functionName = function() {} vs function functionName() {}

I've recently started maintaining someone else's JavaScript code. I'm fixing bugs, adding features and also trying to tidy up the code and make it more consistent.

The previous developer used two ways of declaring functions and I can't work out if there is a reason behind it or not.

The two ways are:

What are the reasons for using these two different methods and what are the pros and cons of each? Is there anything that can be done with one method that can't be done with the other?

0 投票
8 回答
24648 浏览

java - 什么是“执行周围”成语?

我听说过的这个“Execute Around”成语​​(或类似的)是什么?为什么我可以使用它,为什么我不想使用它?

0 投票
11 回答
15223 浏览

java - Java 字符串参数

我来自.net 背景,想知道创建返回布尔值并修改通过参数传入的字符串的方法的公认方式。我知道字符串在 Java 中是不可变的,所以下面的代码片段总是会产生一个空字符串。我只能返回布尔值。不能抛出异常。如果我需要将 String 类包装在 StringHolder 中,我可以在哪个包中找到它。

0 投票
7 回答
266 浏览

python - 用于映射一系列语句的大多数 Pythonic 形式?

这是困扰我一段时间的事情。我在学习 Python 之前学习了 Haskell,所以我一直喜欢将许多计算视为列表的映射。列表理解很好地表达了这一点(我在这里给出了pythonic版本):

但在许多情况下,我们希望在 x 上执行多个语句,例如:

这很快就会变得笨重,难以阅读。

我对此的正常解决方案是将其扩展回 for 循环:

关于这一点让我无休止的一件事是必须初始化空列表“结果”。这是一件小事,但它让我不开心。我想知道是否有任何替代的等效形式。一种方法可能是使用本地函数(这就是它们在 Python 中的调用方式吗?)

上述两种形式中的任何一种都有什么特别的优点/缺点吗?还是有更优雅的方式?