Syntax 如何定义类型为“的变量”;功能;?(使用可选键入)

Syntax 如何定义类型为“的变量”;功能;?(使用可选键入),syntax,types,dart,dart-editor,Syntax,Types,Dart,Dart Editor,在Dart中,函数是第一类的。 文档告诉我们,您可以创建一个变量,其函数如下: 创建名为“loudify”的函数,该函数接受一个字符串并返回另一个字符串。 如果我事先不知道要将哪个函数分配给变量,我可以这样做: 但是如何使用可选类型,以便稍后知道变量的类型为“function”,并且具有输入字符串和输出字符串? 我建议这样做,但这不起作用(Dart编辑器告诉我“未定义的类‘函数’”): //这会在Dart编辑器中产生语法错误 功能响亮; 那么这里的正确语法是什么? 问候, 亨德里克您可以

在Dart中,函数是第一类的。 文档告诉我们,您可以创建一个变量,其函数如下:

创建名为“loudify”的函数,该函数接受一个字符串并返回另一个字符串。
如果我事先不知道要将哪个函数分配给变量,我可以这样做:

但是如何使用可选类型,以便稍后知道变量的类型为“function”,并且具有输入字符串和输出字符串? 我建议这样做,但这不起作用(Dart编辑器告诉我“未定义的类‘函数’”):

//这会在Dart编辑器中产生语法错误
功能响亮;
那么这里的正确语法是什么?
问候,

亨德里克

您可以使用
typedef

typedef字符串OneString(字符串x);
typedef字符串OneStringAndInt(字符串x,int y);
void main(){
//变量f=(字符串x)=>“$x”;
变量f=(字符串x,整数y)=>“$x$y”;
if(f是一个字符串){
印刷品(f(‘bla’);
}否则{
印刷品(f('bla',10));
}
}

您可以使用
typedef

typedef字符串OneString(字符串x);
typedef字符串OneStringAndInt(字符串x,int y);
void main(){
//变量f=(字符串x)=>“$x”;
变量f=(字符串x,整数y)=>“$x$y”;
if(f是一个字符串){
印刷品(f(‘bla’);
}否则{
印刷品(f('bla',10));
}
}
var loudify = (msg) => '!!! ${msg.toUpperCase()} !!!';
// define the variable
var loudify;

// later on set the variable
loudify = (msg) => '!!! ${msg.toUpperCase()} !!!';
// this gives a syntax error in the Dart editor
function<String, String> loudify;