UFCS使您能够在不牺牲便利性的情况下编写自然可重用的代码。早在2017年,我就写过为什么D是开发的绝佳选择。但是D中有一个我没有完全介绍的奇妙特性:通用函数调用语法(UFCS)。UFCS是D中的一个语法糖,它允许您将任何常规函数链接到一个类型(字符串、数字、布尔值等)上,就好像它是该类型的成员函数一样。如果您没有安装D,请安装D编译器以便您可以自己运行D代码。看看下面的示例代码://文件:ufcs_demo.dmoduleufcs_demo;importstd.stdio:writeln;int[]evenNumbers(int[]numbers){importstd.array:array;导入标准算法:过滤器;返回数字。filter!(n=>n%2==0).array;}voidmain(){writeln(evenNumbers([1,2,3,4]));}用你最喜欢的D语言编译器编译,看看这是什么简单的示例应用程序:$dmdufcs_demo.d$./ufcs_demo[2,4]但是,使用D语言的内置功能UFCS,您还可以以自然的方式编写代码:...writeln([1,2,3,4].evenNumbers());...或完全删除现在多余的括号,使evenNumbers看起来像一个属性:...writeln([1,2,3,4].evenNumbers);//打印2、4...所以现在完整的代码变成了://file:ufcs_demo.dmoduleufcs_demo;importstd.stdio:writeln;int[]evenNumbers(int[]numbers){importstd.array:array;导入标准算法:过滤器;returnnumbers.filter!(n=>n%2==0).array;}voidmain(){writeln([1,2,3,4].evenNumbers);}用你最喜欢的D编译器编译并尝试一下。正如预期的那样,它产生相同的输出:$dmdufcs_demo.d$./ufcs_demo[2,4]在编译期间,编译器自动将数组作为函数的第一个参数。这是一种使使用D工作成为一种乐趣的常规模式,因??此它与您自然地??思考代码的方式非常相似。结果是函数式编程。你可能猜到它打印了什么:writeln(mySentence.asLowerCase.asCapitalized);}确认:$dmdcool.d$./coolD很酷结合其他D语言功能,UFCS使您能够编写可重用的代码,并且自然地执行它,而不会牺牲编写的便利性。是时候尝试D正如我之前所写,D是一种很棒的开发语言。从D语言的下载页面安装很容易,因此请下载编译器、查看示例并亲自体验D。
