我看到“编程习语”这句话被抛出,就像通常被理解一样。然而,在搜索结果和堆栈溢出中,我看到了一切......
来自微观:
中等:
要宏:
“编程习语”是否有单一的通用定义?由于“编程习语”在许多范围内使用:
在任何这些范围内使用短语是否有效?到目前为止,答案主要集中在句法习语上。其他人也有效吗?
答案 0 :(得分:48)
编程习惯用法是用特定语言编写任务的常用方法。例如,循环通常在C:
中这样写for (i=0; i<10; i++)
PHP将理解类似的结构:
for ($i = 1; $i <= 10; $i++)
但是在PHP中循环使用数组是不鼓励的。在这种情况下,您将使用:
foreach ($arr as $value)
在Ruby中,你会使用:
(1..10).each
表示循环,或者:
array.each
在这些语言中编写循环有很多种可能性。使用这个成语使经验丰富的读者可以立即识别。然后他们可以把时间花在更重要的问题上。
答案 1 :(得分:16)
(非编程)语言中的“习语”是特定语言所特有的说法或表达。一般来说,某些东西不符合语言的“规则”,只是存在,因为母语人士“只知道”它意味着什么。 (例如,在英语中我们说“在线”但是“ 行” - 这将是惯用的)
将其转移到编程领域,我们得到如下内容:
if(c=GetValue())
{...}
这意味着:
c = GetValue();
if (c != 0)
{....}
每个C / C ++程序员都能理解,但会完全困扰来自不同编程语言的人。
答案 2 :(得分:10)
请参阅http://en.wikipedia.org/wiki/Programming_idiom
编程习语是一种模式,算法或结构化代码的方式。谈论编程习语是谈论那些在代码中频繁出现或提出新代码的模式。
熟悉习语,特别是较大的习语,其中的好处是,在查看代码时,您可以看到几行代码,但因为它是一种特殊的习惯用语,您可以在心理上代表并思考代码。成语而不是必须单独阅读和理解每一行。
要说代码不是惯用的,就是说它不会以允许人类读者有效思考代码的方式构建自己。
答案 3 :(得分:2)
来自WikiPedia:编程习语是用一种或多种编程语言表达重复结构的一种方法。
我猜你已经走了那条路了!
答案 4 :(得分:2)
成语是来自语言学的术语。这是一组单词,并不是字面上的意思。例如,当他们感觉不舒服时说某人“天气不好”。这个特殊的短语来自水手们谈论乘客,晕船乘客会在船只运动较少的“天气”甲板下面。但我们大多数人都不是水手,也不知道这句话的字面含义。
在编程很多时,即使大多数指令都是英文单词,也不为大众所理解。例如“for loop”。虽然它们对程序员有意义,但对大多数人来说并非如此。
答案 5 :(得分:2)
成语是一种'模式',可以在多个地方识别。
我不会说它与特定的编程语言有任何关系。
Iterator foo;
foo.reset();
while (foo.next())
{
print(foo.value());
}
这是我称之为'for each'成语的片段,在许多语言中表达略有不同。
成语的另一个优秀例子是 Socket 。声称拥有套接字的所有平台都在概念上以相同的方式工作,也就是说,它们都具有大致相同的接口。
答案 6 :(得分:2)
由于大型程序从小程序发展而来,因此我们必须开发一套标准程序结构库,我们已经确定它们的正确性 - 我们称之为成语 - 并学习使用组织技术将它们组合成更大的结构。证明价值。
程序员应该获得好的算法和习语。
Alan J. Perlis - SICP Foreword
答案 7 :(得分:1)
成语是一种说出特定语言特定内容的方式。例如,这里有一些english idioms。
您可以推断这一点,将概念应用于编程。
答案 8 :(得分:1)
尽早进入市场:以同样的方式做同样的过程。积累习语。标准化。莎士比亚和你之间的唯一区别(!)就是他成语列表的大小 - 而不是他词汇量的大小。
答案 9 :(得分:0)