问题标签 [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 投票
12 回答
4930 浏览

python - 早期需要学习的 Python 的重要语言特性(习语)有哪些

我很想知道 StackOverflow 社区认为 Python 的重要语言特性(习语)是什么。将程序员定义为 Pythonic 的功能。

Python (pythonic) 成语 - “代码表达式”是 Python 语言的自然或特征。

另外,所有 Python 程序员都应该尽早学习哪些习语?

提前致谢

有关的:

0 投票
3 回答
2380 浏览

regex - 现代编程语言中的“正则表达式”真的是“上下文敏感语法”吗?

多年来,“正则表达式”模式匹配变得越来越强大,以至于我想知道:它真的只是上下文敏感的语法匹配吗?它是上下文无关语法匹配的变体/扩展吗?它现在在哪里,为什么我们不直接称它为旧的、限制性的“正则表达式”?

0 投票
15 回答
22100 浏览

ruby - 常见的 Ruby 习语

我喜欢 ruby​​ 的一件事是它主要是一种非常易读的语言(这对于自记录代码来说非常有用)

然而,受这个问题的启发:Ruby Code explain and the description of how ||=works in ruby​​,我在想我不使用的 ruby​​ 成语,坦率地说,我并没有完全理解它们。

所以我的问题是,类似于引用问题中的示例,我需要了解哪些常见但不明显的 ruby​​ 习语才能成为真正精通的 ruby​​ 程序员?

顺便说一句,从引用的问题

相当于

(感谢 Ian Terrell 的更正)

编辑:事实证明,这一点并非完全没有争议。正确的展开其实是

请参阅以下链接了解原因:

感谢 Jörg W Mittag 指出这一点。

0 投票
3 回答
447 浏览

c++ - 是否有任何对 C++ win32 多线程编程很重要的常见设计模式或常见习语?

一个示例可能是:RAII - 资源获取是与关键部分一起使用的初始化

还有其他重要的、流行的并且您经常使用的吗?

0 投票
3 回答
950 浏览

cocoa - 自定义视图应该如何更新模型对象?

这是一个 Cocoa n00b 问题 - 我多年来一直在其他环境中编写 GUI 应用程序,但现在我想了解以下琐碎情况下的“惯用 Cocoa”是什么:

我有一个简单的自定义NSView,允许用户在其中绘制简单的形状。它的drawRect实现是这样的:

您可以看到这段代码是多么简单:shapes数组实例变量充当该drawRect方法用来绘制形状的模型。每次用户执行鼠标向下/拖动/鼠标向上序列时都会NSRect添加新的 s,我也在这个自定义视图中实现了这一点。shapes这是我的问题:

如果这是一个“真正的”Cocoa 应用程序,我的自定义视图更新其模型的惯用方式是什么?

换句话说,自定义视图应该如何通知控制器需要将另一个形状添加到形状列表中?现在,视图在其自身中跟踪形状NSMutableArray,这作为实现细节很好,但我不想将此数组公开为我的自定义视图的公共 API 的一部分。此外,我希望将错误检查、保存/加载和撤消代码放在像控制器这样的集中位置,而不是让它散落在我的自定义视图中。在我过去使用其他 GUI 编程环境的经验中,模型由我的控制器层中的对象管理,并且视图通常不会直接更新它们 - 相反,视图在发生某些事情时进行通信,通过调度事件或调用它引用的控制器上的方法,或使用一些类似的解耦方法。

我的直觉是,惯用的 Cocoa 代码会delegate在我的自定义视图上公开一个属性,然后将MyDocument控制器对象(或挂在文档控制器之外的另一个控制器层对象)连接到 xib 文件中的视图,作为其委托。然后视图可以调用一些方法,比如shapeAdded:(NSRect)shape委托。但似乎还有许多其他方法可以做到这一点,例如让控制器将模型对象(形状列表)的引用直接传递给自定义视图(感觉不对),或者让视图发送通知控制器会听(感觉笨拙),然后控制器更新模型。

0 投票
2 回答
903 浏览

javascript - JavaScript 习惯用法:创建一个函数只是为了调用它

我正在学习YUI,偶尔会看到这个成语:

为什么他们创建一个函数只是为了调用它?为什么不直接写:

例如看这里

0 投票
6 回答
466 浏览

c# - 在 C# 中将“this”参数命名为扩展方法时,您更喜欢用什么习惯用法(如果有),为什么?

C# 扩展方法的第一个参数是调用扩展方法的实例。我采用了一个习惯用法,在别处没有看到它,称该变量为“自我”。如果其他人也使用它,我一点也不感到惊讶。这是一个例子:

但是,我开始看到其他人将该参数命名为“@this”,如下所示:

作为第三种选择,有些人根本不喜欢任何成语,说“self”和“@this”不提供任何信息。我想我们都同意,有时参数有一个明确、有意义的名称,特定于它的目的,这比“self”或“@this”更好。有些人走得更远,说你总能想出一个更有价值的名字。所以这是另一个有效的观点。

你还见过哪些成语?你喜欢什么成语,为什么?

0 投票
4 回答
1673 浏览

ruby - Ruby: How do I invoke a function via an object reference?

Consider this contrived example:

Now I'd like to invoke the target of eating_method with some arguments:

What's the right way to do this in Ruby?

0 投票
5 回答
2677 浏览

ruby - Ruby:如何使用符号来表示数组中的事物?

我有一个如下所示的数组数组:

我还有一个要在数组的每个元素上调用的方法:

我真的很想能够说类似的话:

有没有一种方法可以在不必更改数组中的每个项目的情况下完成此操作(例如,通过迭代它并以某种方式添加符号)?或者,如果这太难了,有没有更好的选择?

0 投票
2 回答
763 浏览

scala - 在 Scala 中漂亮地用单位表示数量

我需要支持单位数量。我希望类型系统尽可能地强制执行单元正确性。例如,不可能将克与美元结合起来。我正在走参数化类型的道路,但这段代码似乎比我从其他人那里看到的 Scala 代码重复得多。

有没有更清洁的方法来做到这一点?“T<:UnitOfMeasure”的鼓声是困扰我的主要事情。