Dans Ruby, les méthodes qui changent l'objet ont un coup sur la fin: string.downcase!
Existe-t-il un moyen de créer des méthodes de chaînes "destructives" à la Ruby?
En C# vous devez faire: foo = foo.ToLower()
est-il un moyen de faire une méthode d'extension comme:
foo.ConvertToLower()
qui manipulerait foo
?
(Je pense que la réponse est non puisque les chaînes sont immuables et vous ne pouvez pas faire un ref this
dans une méthode d'extension.)
À droite, mais je peux réaffecter une variable de chaîne. Je veux juste une méthode d'extension pour le faire pour moi. – brendanjerwin
Vous ne pouvez pas faire cela. Qu'attendriez-vous si vous appeliez "Foo" .ConvertToLower()? Même si vous pouviez, je ne voudrais pas - ce serait un code très évident à lire. –
Je souhaite que l'équipe .NET sépare l'instance et les méthodes statiques de manière à ce que la méthode statique retourne une nouvelle instance alors que les méthodes d'instance changeront l'original. Comme String.ToLower vs myString.ToLower() Jon, savez-vous pourquoi l'équipe .NET n'a pas suivi ce chemin? –