地图与Dart的交互

地图与Dart的交互,dart,Dart,我有一个映射,每个字母都有值,当我传递一个单词时,它会返回每个字母的值之和,例如: test = 1 + 2 + 3 + 1 = 7 t = '1' e = '2' s = '3' 我认为这是可行的,想法是将每个值转移到一个列表中,然后减少列表,但它可能返回一个错误 var splittedString = string.split(''); for (var i = 0; i < string.length; i++) { sum += values.letterVal

我有一个映射,每个字母都有值,当我传递一个单词时,它会返回每个字母的值之和,例如:

test = 1 + 2 + 3 + 1 = 7

t = '1'
e = '2'
s = '3'
我认为这是可行的,想法是将每个值转移到一个列表中,然后减少列表,但它可能返回一个错误

 var splittedString = string.split('');

 for (var i = 0; i < string.length; i++) {
    sum += values.letterValues[splittedString[i]];
 }
我已经创建了一个,它可以工作(我只添加了
int.parse

void main(){
最终字符串='test';
最终字母值={
‘t’:‘1’,
"e":"2",,
‘s’:‘3’,
};
var splittedString=string.split(“”);
var总和=0;
对于(变量i=0;i

请说明发生了什么,或提供您自己的示例。

谢谢!我对此非常着迷:)@Daniel,在静态分析过程中,您的IDE应该说“参数类型‘String’不能分配给参数类型‘num’”。在配置IDE以支持Android Studio的Dart配置后,Dartanalyzer发挥了这一神奇的作用:
return input
      .split('')
      .map((s) => values.letterValues[s])
      .fold(0, (previousValue, element) => previousValue + element);
void main() {
  
  final string = 'test';
  final letterValues = {
    't': '1',
    'e': '2',
    's': '3',
  };
  
   var splittedString = string.split('');

  var sum = 0;
 for (var i = 0; i < string.length; i++) {
    sum += int.parse(letterValues[splittedString[i]]);
 }
  
  print(sum); // result: 7
}