En C# vous pouvez écrire:Scala équivalent des méthodes d'extension de C#?
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());
}
}}
Comment serait-ce look simple extension method comme à Scala?
Attention: en utilisant le 'nouveau {...}' syntaxe, vous causez en fait le compilateur de déduire un type de structure pour la méthode 'richInt', sens que toute invocation de 'square' sera faite en utilisant la réflexion (un tueur de performance). Il vaudrait mieux définir une classe 'RichInt' qui définit' square' et qui est retournée par la méthode 'richInt'. –
@Daniel, pourriez-vous poster le code que vous décrivez? – OscarRyz
@Support Ajoutez la classe RichInt (i: Int) {def square = i * i} 'à MyExtensions et faites' new RichInt (i) 'sur la méthode' richInt'. –