【问题标题】:Getting 'Script error' and can't find why出现“脚本错误”并且找不到原因
【发布时间】:2020-11-18 18:25:47
【问题描述】:

我在 DartPad 中练习了一些问题,但无法得到解决方案,下面的代码是我认为可以的,但我在控制台中收到“脚本错误”。

我要解决的问题是我需要创建一个有两个参数的函数,第一个在某个随机句子中,第二个是任何字符,我需要找出该句子中有多少个字符。

请回复我没有看到的错误,或者只是给我解决方案。类型

void main() {
  numberOfSameCharacters(randomString: 'Today is a nice day.', character: 'a');
}

void numberOfSameCharacters({String randomString, String character}) {
  int sameCharacters = 0;

  List<String> randomStringList = randomString.split('');

  for (int i = 0; i <= randomStringList.length; i++) {
    if (character.toLowerCase() == randomStringList[i].toLowerCase()) {
      sameCharacters += 1;
    }
  }

  print(sameCharacters);
}

【问题讨论】:

    标签: function loops flutter for-loop dart


    【解决方案1】:

    我想我可以给你一个想法。

    错误在这一行:

    for (int i = 0; i <= randomStringList.length; i++)
    

    我们知道大小为 N 的 List / Arrays 的索引值从 0 到 N-1,但是这段代码运行了从 0 到 N 的循环。所以我们得到 RangeError

    更正的代码:

    void main() {
      numberOfSameCharacters(randomString: 'Today is a nice day.', character: 'a');
    }
    
    void numberOfSameCharacters({String randomString, String character}) {
      int sameCharacters = 0;
    
      List<String> randomStringList = randomString.split('');
    
      for (int i = 0; i < randomStringList.length; i++) {
        if (character.toLowerCase() == randomStringList[i].toLowerCase()) {
          sameCharacters += 1;
        }
      }
    
      print(sameCharacters);
    }
    

    希望能解决您的问题!

    【讨论】:

      【解决方案2】:

      我有同样的问题,看看这个:

      import 'package: flutter/material.dart';
      
      var epicMap = {'Key1': 345, 'key2': 'map example'};
      
      void main() => runApp(MyApp());
      
      class MyApp extends StatelessWidget {
        @override
        Widget build(BuildContext context) {
          return MaterialApp(
            title: 'Flutter Demo',
            debugShowCheckedModeBanner: false,
            theme: ThemeData(
              primarySwatch: Colors.blue,
            ),
            home: MyHomePage(title: 'Mapping with flutter and dart'),
          );
        }
      }
      
      class MyHomePage extends StatefulWidget {
        final String title;
        MyHomePage({Key? key, required this.title}) : super(key: key);
      
        @override
        _MyHomePageState createState() => _MyHomePageState();
      }
      
      class _MyHomePageState extends State<MyHomePage> {
        int _counter = 0;
      
        get key2 => null;
      
        void _incrementCounter() {
          setState(() {
            _counter++;
          });
        }
      
        @override
        Widget build(BuildContext context) {
          var _value;
          return Scaffold(
            appBar: AppBar(
              title: Text(widget.title),
            ),
            body: Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Text(
                    'Map output:',
                  ),
                  Text(
                    '$_counter',
                    style: Theme.of(context).textTheme.headline4,
                  ),
                  Text(
                    'ui',
                    style: Theme.of(context).textTheme.headline5,
                  ),
                  Slider(
                    min: 0,
                    max: 2,
                    value: _value,
                    onChanged: (value) {
                      setState(() {
                        _value = value;
                      });
                    },
                  ),
                ],
              ),
            ),
            floatingActionButton: FloatingActionButton(
              onPressed: _incrementCounter,
              tooltip: 'Increment',
              child: Icon(Icons.add),
            ),
          );
        }
      }
      

      【讨论】:

      • 也许能多解释一下这个问题,控制台里有什么?哪一行代码?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      相关资源
      最近更新 更多