C# 具有生成器函数,其语法如下:
IEnumerable<int> GetNats(int max)
{
for (int i=0; i < max; ++i)
yield return i;
}
我对我的编程语言(类似于 Java、Scala、ActionScript 和 C# 的简单面向对象编程)感兴趣的一个特性是生成器表达式。这些本质上是生成器函数的语法糖。
我目前最喜欢的候选人是以下语法:
IEnumerable<int> nats =
witheach (i in range(0, 42))
yield i * 2;
该表达式range(0, 42)
是一个内置的生成器函数。
所以我的问题是,您希望在 C#/Java/Scala/ActionScript 类型语言中看到生成器表达式的哪种语法,为什么?
一些可能影响响应的因素是,像 Scala 和 ActionScript,我的语言中的类型是在类型之后声明的。例如:
var myVar : SomeType = initialValue;
匿名函数也看起来像这样:
var myFunc = function(int x) {
return x + 1;
}
除此之外,我的语言语法的其余部分类似于 Java 或 C#。我的语言有一个foreach
与 C# 非常相似的语句。