Scala等价于C#的扩展方法?

编程入门 行业动态 更新时间:2024-10-24 06:26:29
本文介绍了Scala等价于C#的扩展方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在C#中,您可以编写:

In C# you can write:

using System.Numerics; namespace ExtensionTest { public static class MyExtensions { public static BigInteger Square(this BigInteger n) { return n * n; } static void Main(string[] args) { BigInteger two = new BigInteger(2); System.Console.WriteLine("The square of 2 is " + two.Square()); } }}

这种简单的扩展方法在Scala中的外观如何?

How would this simple extension method look like in Scala?

推荐答案

皮条客我的图书馆模式是类似的构造:

object MyExtensions { implicit def richInt(i: Int) = new { def square = i * i } } object App extends Application { import MyExtensions._ val two = 2 println("The square of 2 is " + two.square) }

根据@Daniel Spiewak的评论,这将避免对方法调用的反思,从而有助于提高性能:

Per @Daniel Spiewak's comments, this will avoid reflection on method invocation, aiding performance:

object MyExtensions { class RichInt(i: Int) { def square = i * i } implicit def richInt(i: Int) = new RichInt(i) }

更多推荐

Scala等价于C#的扩展方法?

本文发布于:2023-11-09 15:39:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1572757.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方法   Scala

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!