如何创建一个接受具有特定参数的函数作为参数的函数?

时间:2017-01-15 16:54:56

标签: function dart type-systems

我想创建一个接受一个函数的函数,该函数接受特定类型的参数作为参数。例如:

myFn(Function paramFn) {
    paramFn([1, 2, 3]);
}

如何确保paramFn接受List<int>作为唯一参数?

3 个答案:

答案 0 :(得分:6)

您可以使用typedef来定义您想要的签名,如Kul's answer中所述,或者您可以简单地在参数中内联函数签名:

myFn(void paramFn(List<int> l)) {
  paramFn([1, 2, 3]);
}

答案 1 :(得分:5)

您可以使用//examine custom annotations for shaping the schema in the database. foreach (var entityType in builder.Model.GetEntityTypes()) foreach (var property in entityType.GetProperties()) { var memberInfo = property.PropertyInfo ?? (MemberInfo)property.FieldInfo; var defaultValue = memberInfo?.GetCustomAttribute<DefaultAttribute>(); if (defaultValue == null) continue; if (defaultValue.UseAsLiteral) property.Npgsql().DefaultValueSql = defaultValue.DefaultValue.ToString(); else property.Npgsql().DefaultValue = defaultValue.DefaultValue; } 将符号与满足所需签名的函数相关联。像

这样的东西
typedef

答案 2 :(得分:1)

这就是here的用途,虽然我不确定强模式会如何严格执行它。