Jos*_*den 3 f# seq
我正在查看SeqModule中Append函数的源代码,并注意到有大量重复的方法,后缀为@xxx.有谁知道为什么这些在这里?
kvb*_*kvb 5
简而言之,那些是支持各种本地函数值的具体类,而@xxx值指示导致它们生成的源代码行号(尽管这是一个实现细节,并且类可以被赋予任意名称) .
同样,C#编译器在定义实现匿名委托,迭代器状态机等的类时使用概念上类似的方案(请参阅Eric Lippert 在这里回答C#中的"魔术名称"如何工作).
这些方案是必要的,因为并非每种语言特征都完美地映射到可以在CLR中清晰表达的事物.
归档时间:
13 年,6 月 前
查看次数:
149 次
最近记录: