在处理异构数据时,需要对保存数据的简单对象进行部分更改。例如,您可能想要添加、删除或重命名属性,或者连接两个对象。这在动态语言中很容易,但我想知道静态语言是否有什么聪明的解决方案?
为了修正想法,有没有任何语言可以通过某种静态的混合语法来实现这样的东西(C#):
var hello = new { Hello = "Hello" };
var world = new { World = "World" };
var helloWorld = hello + world;
Console.WriteLine(helloWorld.ToString());
//outputs {Hello = Hello, World = World}这看起来当然是可能的,因为没有使用运行时信息。是否存在具有此功能的静态语言?
添加:
我正在考虑的有限版本是F#的copy-and-update record expression
let myRecord3 = { myRecord2 with Y = 100; Z = 2 }发布于 2011-08-27 12:54:21
您所描述的内容在编程语言研究中称为记录连接。已经有一些关于记录连接的静态类型系统的工作,主要是在像Haskell或ML那样的自动类型推断的上下文中。据我所知,它还没有对任何主流编程语言产生影响。
https://stackoverflow.com/questions/7212460
复制相似问题