![]() |
1
9
我们考虑为元组添加一种句法糖分。我认为每个人都同意这是一个很好的功能,但它根本不符合预算。 |
![]() |
2
3
似乎不太可能有人将C语言的特性应用到适当的级别,需要一个包含7个以上元素的元组,特别是考虑到现有和已建立的问题解决技术以及C语言主要面向对象的解决方案开发方法。 另一方面,F是一种主要功能性语言。因此,它以一种主要的功能性方式来做事情,并且语言特性集中在这个主要概念上。结果,使用f比使用c更有意义地使用提供您请求的语言功能所需的资源。 记住 all new language features start with 100 points against them . :) |
![]() |
3
3
下面是Matt Ellis关于基类库(BCL)团队的一篇很好的msdn文章,它详细介绍了他们在这方面的想法以及有关
建筑元组: http://msdn.microsoft.com/en-us/magazine/dd942829.aspx
由于.NET泛型的设计,泛型类型参数的数目在编译时是固定的。因此,他们必须选择一些通用参数来实现。文章解释说它是在现有的
|
![]() |
4
3
这是我的猜测,但我怀疑另一个因素是f有一个相当复杂的机制来存储特定于语言的元数据。需要有某种方法来区分“最后一个元素是3元组的7元组”和9元组,即使它们在.NET类型方面以相同的方式编码。F通过自定义元数据块来实现这一点,就像它使用元数据来存储比内置到.NET中的约束(例如枚举或成员约束)更具表现力的约束一样。C没有使用程序集存储复杂的特定于语言的元数据的历史记录,其中某些形式将是处理扩展元组的必要先决条件(尽管在这种情况下,自定义属性可能足够)。 |
![]() |
5
2
好吧,你问题的简单答案是C没有提供 任何 使用元组时的句法糖分,因此当有8个以上的元素时,无法隐藏元组的嵌套。 当然,我猜你是在问为什么在C 4.0中使用元组没有语法上的优势。我认为它不存在的主要原因是它鼓励轻量级的编程风格,而C通常不支持这种风格(但对于F程序员来说效果很好)。
当然,在C中可能有更好的方法来支持这一点,并且将来可能会添加它,但是我认为此功能的集成比F中更复杂。也, 匿名类型 与元组的作用类似(但仅限于本地),因此在某些情况下,在C中并不真正需要元组。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 3 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 4 月前 |
![]() |
CactusCake · if语句中应有分号 5 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 5 月前 |