这很酷吗?
IMO单行程降低了可读性,使调试/理解变得更加困难.
最大化代码的可理解性.
有时这意味着将(简单,易于理解)表达式放在一行上,以便在给定数量的屏幕空间中获得更多代码(即源代码编辑器).
其他时候,这意味着采取一些小步骤,以明确代码的含义.
单行应该是副作用,而不是目标(也不应该避免).
如果有一种简单的方法可以在一行代码中表达某些内容,那就太棒了.如果只是将大量表达式填充到单行中的情况,那就不太好了.
解释我的意思 - LINQ允许您以相对简单的方式表达相当复杂的转换.这很好 - 但我不会尝试将一个巨大的LINQ表达式放在一行上.例如:
var query = from person in employees where person.Salary > 10000m orderby person.Name select new { person.Name, person.Deparment };
比以下更具可读性:
var query = from person in employees where person.Salary > 10000m orderby person.Name select new { person.Name, person.Deparment };
这也比做所有过滤,手动排序和投影更readabe.这是一个不错的甜蜜点.
试图"聪明"并不是一个好主意 - 但如果你能简单明了地表达一些东西,那就很好.
如果使用正确的单行,可以清楚地传达您的意图,并使代码的结构更容易掌握.
一个python示例是列表推导:
new_lst = [i for i in lst if some_condition]
代替:
new_lst = [] for i in lst: if some_condition: new_lst.append(i)
这是一种常用的习惯用法,使您的代码更具可读性和紧凑性.因此,在某些情况下,可以实现两全其美.