What is the dart equivalent to Swift “extensions”?

1,278

Solution 1

They are finally here 🥳

From dart version 2.6 (not 100% sure).

class Foo {
  printFoo()  {
    print("Foo");
  }
}

extension Bar on Foo { 
  printBar()  {
    print("Bar");
  }
}

void main() {
  final foo = Foo();
  foo.printFoo();
  foo.printBar();
}

prints:

Foo

Bar

You can give it a try in dart pad.

Solution 2

Extension methods are currently being implemented into the language.

https://github.com/dart-lang/language/projects/1#card-18758939

Specifications document

https://github.com/dart-lang/language/blob/master/accepted/future-releases/static-extension-methods/feature-specification.md

Share:
1,278
Marco Leong
Author by

Marco Leong

Updated on December 09, 2022

Comments

  • Marco Leong
    Marco Leong over 1 year

    Keyword/reserved word extension allow code to be much cleaner by using an existing class in the standard frameworks without subclassing them. Is there a keyword in Dart that allows the same behavior?

    extension Double {
        var mm: Double { return self / 1_000.0 }
    }
    
    let oneInch = 25.4.mm
    print("One inch is \(oneInch) meters")