Dart如何在方法参数中直接解构record(记录)?
Dart方法参数中直接解构Record的实现方式
你想要的在方法参数里直接解构record的需求,Dart是支持的,正确的写法有两种:
1. 显式标注字段类型
直接在参数里定义record的字段变量并标注类型,方法体内可直接使用这些变量:
void myMethod((String s, int i)) { print(s); // 直接使用解构后的字符串变量 print(i); // 直接使用解构后的整数变量 // ...其他业务逻辑 }
2. 依赖类型推断
如果调用方法时传入的record类型明确,也可以省略字段的类型标注,让Dart自动推断变量类型:
void myMethod((s, i)) { print(s); print(i); // ...其他业务逻辑 }
你之前尝试的void myMethod((String, int) (s, i))写法不符合Dart语法规范,正确的方式是把record的类型信息和解构变量合并到同一个括号内,无需分开声明。
内容的提问来源于stack exchange,提问作者Valentin Vignal
相关产品推荐
相关产品推荐

