本文介绍了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#的扩展方法?
发布评论