我已经阅读了说明,我知道它是一个函数类型别名.
-
tyecif或函数类型别名为函数类型提供了一个名称,您可以在声明字段和返回类型时使用该名称.将函数类型分配给变量时,tyfinf会保留类型信息.
-
一百
但是我怎么使用它呢?为什么要用函数类型声明字段呢?我什么时候用呢?它解决了什么问题?
我想我需要一两个真正的代码示例.
我已经阅读了说明,我知道它是一个函数类型别名.
tyecif或函数类型别名为函数类型提供了一个名称,您可以在声明字段和返回类型时使用该名称.将函数类型分配给变量时,tyfinf会保留类型信息.
一百
但是我怎么使用它呢?为什么要用函数类型声明字段呢?我什么时候用呢?它解决了什么问题?
我想我需要一两个真正的代码示例.
DART中tyecif的一种常见使用模式是定义回调接口.例如:
typedef void LoggerOutputFunction(String msg);
class Logger {
LoggerOutputFunction out;
Logger() {
out = print;
}
void log(String msg) {
out(msg);
}
}
void timestampLoggerOutputFunction(String msg) {
String timeStamp = new Date.now().toString();
print('${timeStamp}: $msg');
}
void main() {
Logger l = new Logger();
l.log('Hello World');
l.out = timestampLoggerOutputFunction;
l.log('Hello World');
}
运行上述示例将产生以下输出:
你好,世界
2012-09-22 10:19:15.139:你好,世界
typedef行表示LoggerOutputFunction接受一个字符串参数并返回void.
Timestamp pLoggerOutputFunction与该定义匹配,因此可以分配给OUT字段.
如果你需要另一个例子,请告诉我.