在 dart 中导入静态方法

Mah*_*alv 6 dart

假设我有一个包含静态函数的类:

class TextUtils {
   static Text bold(String text) {
     return Text(text, TextStyle(fontWeight: FontWeight.bold,),);
   }
}
Run Code Online (Sandbox Code Playgroud)

所以当我想使用它时:

import 'ui/text.dart'

// ...
TextUtils.bold("Hello");
Run Code Online (Sandbox Code Playgroud)

有什么办法不把类名放在函数前面吗?就像 Kotlin 中的那样?

import 'ui/text.dart'

// ...
TextUtils.bold("Hello");
Run Code Online (Sandbox Code Playgroud)

Gaz*_*kus 5

不,Dart 中没有这样的功能。

其实还有相反的情况。全局函数可以使用前缀,就好像它是某个类的静态方法一样。

import 'package:lib2/lib2.dart' as lib2;

lib2.Element element2 = lib2.Element();
Run Code Online (Sandbox Code Playgroud)

  • 我也将此作为简单地使您的函数成为顶级函数的建议。Dart 风格指南明确不鼓励创建仅包含静态成员的类 - 您应该只创建一个包含顶级成员的库,并且仅在您想要或需要避免命名冲突时才使用前缀导入该库。 (2认同)