La extension de palabra clave/palabra reservada permite que el código sea mucho más limpio mediante el uso de una clase existente en los marcos estándar sin crear subclases. ¿Existe una palabra clave en Dart que permita el mismo comportamiento?
extension Double { var mm: Double { return self / 1_000.0 } } let oneInch = 25.4.mm print("One inch is \(oneInch) meters")Por fin están aquí 🥳
Desde dart versión 2.6 (no 100% seguro).
class Foo { printFoo() { print("Foo"); } } extension Bar on Foo { printBar() { print("Bar"); } } void main() { final foo = Foo(); foo.printFoo(); foo.printBar(); }huellas dactilares:
Foo
Bar
Puedes probarlo en dart pad.
Los métodos de extensión se están implementando actualmente en el lenguaje.
https://github.com/dart-lang/language/projects/1#card-18758939
Documento de especificaciones
TL;DR: Lamentablemente, Dart no admite métodos de extensión.
En el repositorio de Dart, hay un problema sobre cómo agregar nuevas funciones a los tipos existentes para eso. Más específicamente, hay problemas con los métodos de extensión y los tipos de extensión.
Por supuesto, siempre puede usar nuevas class que extend las clases existentes e introduzcan nuevas funciones encima de ellas. Sin embargo, eso solo funciona para clases no primitivas, así que esperemos lo mejor. Su mejor opción probablemente sea votar a favor de los problemas vinculados anteriormente.