【发布时间】:2010-09-30 08:47:33
【问题描述】:
许多编程语言已经有复合语句+=、-=、/= 等。一种相对较新的编程风格是将方法调用“链接”到彼此上,例如在 Linq、JQuery 和 Django 的 ORM 中。
我有时比我想的更频繁地发现需要在 Django 中执行此操作:
# Get all items whose description beginning with A
items = Items.objects.filter(desc__startswith='A')
if something:
# Filter further to items whose description also ends with Z
items = items.filter(desc__endswith='Z')
我认为如果有一个复合方法调用语句,例如.=,它可以像这样工作:
items = Items.objects.filter(desc__startswith='A')
if something:
items .= filter(desc__endswith='Z')
- 是否有任何编程语言支持此功能或类似功能?
- 如果答案是否定的,为什么不呢?
- 这种编程风格真的那么新颖吗?
- 是否有任何 PEP(Python 增强提案)支持这个想法?
【问题讨论】:
-
是对我来说还是这听起来像一个社区维基?
-
@Cristian Ciupitu:确实如此,所以我改了。
-
看到程序员表现得好像打字是他们工作中最重要的部分,所以我总是很惊讶,因此即使节省三个键击也值得添加带有可疑语义的不透明语法。
-
@只是我的正确意见:我不是想保存击键,我只是想问是否存在类似的东西。语法和语义并不比 += 等不透明或可疑。我怀疑 += 的实现是因为程序员想要保存击键...
标签: jquery python linq programming-languages syntax