当前位置:  开发笔记 > 编程语言 > 正文

什么是惯用代码?

如何解决《什么是惯用代码?》经验,为你挑选了4个好方法。

我会对一些前后c#例子,一些非惯用语和惯用语例子感兴趣.非c#示例也可以,如果他们得到了想法.谢谢.



1> Corey Goldbe..:

惯用语意味着遵循该语言的惯例.您希望找到完成任务的最简单,最常用的方法,而不是从不同语言移植您的知识.

使用带附加的循环的非惯用python:

mylist = [1, 2, 3, 4]
newlist = []
for i in mylist:
    newlist.append(i * 2)

使用列表理解的惯用python:

mylist = [1, 2, 3, 4]
newlist = [(i * 2) for i in mylist] 



2> JacquesB..:

一些例子:

资源管理,非惯用语:

string content;
StreamReader sr = null;
try {
    File.OpenText(path);
    content = sr.ReadToEnd();
}
finally {
    if (sr != null) {
        sr.Close();
    }
}

成语:

string content;
using (StreamReader sr = File.OpenText(path)) {
    content = sr.ReadToEnd();
}

迭代,非惯用语:

for (int i=0;i

也是非惯用的:

IEnumerator e = list.GetEnumerator();
do {
   DoSomenthing(e.Current);
} while (e.MoveNext());

成语:

foreach (Item item in list) {
   DoSomething(item);
}

过滤,非惯用:

List list2 = new List();
for (int num in list1) {
  if (num>100) list2.Add(num);
}

成语:

var list2 = list1.Where(num=>num>100);


大括号是惯用的Java ;-)

3> Bill the Liz..:

惯用语代码是以通用方式为您的语言执行常见任务的代码.它类似于设计模式,但规模要小得多.成语因语言而异.C#中的一个习惯用法可能是使用迭代器迭代集合而不是循环遍历它.没有迭代器的其他语言可能依赖于循环习语.



4> jmoz..:

在PHP中我有时会遇到如下代码:

foreach ($array as $value) {
    $trimmed[] = trim($value);
}
return $trimmed;

可以通过以下方式实现:

return array_map('trim', $array);

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有