Overriding core functions in Dart
An interesting question came up on the Dart mailing list today, asking how to essentially overload a core function, avoiding a name collision.
For example, how to handle this?
class Printer {
// print() comes from dart:core
print(String msg) => print(msg);
}
The dart:core top level function print() is available and defined, however what do you do if you want to name a method print() ?
Thanks to Sam McCall, there are a few options:
Function consolePrint = print;
class Printer {
print(m) => consolePrint(m);
}
and
consolePrint(m) => print(m);
class Printer {
print(m) => consolePrint(m);
}
Thanks for the question and answer about Dart!
For example, how to handle this?
class Printer {
// print() comes from dart:core
print(String msg) => print(msg);
}
The dart:core top level function print() is available and defined, however what do you do if you want to name a method print() ?
Thanks to Sam McCall, there are a few options:
Function consolePrint = print;
class Printer {
print(m) => consolePrint(m);
}
and
consolePrint(m) => print(m);
class Printer {
print(m) => consolePrint(m);
}
Thanks for the question and answer about Dart!