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); 


consolePrint(m) => print(m); 
class Printer { 
  print(m) => consolePrint(m); 

Thanks for the question and answer about Dart!
Post a Comment

Popular posts from this blog