微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 userQuestion 和 userAnswer 中出错

如何解决在 userQuestion 和 userAnswer 中出错

https://www.youtube.com/watch?v=GYYTQcohNwA 使用此视频制作计算器并在 userQuestion 和 userAnswer 上出错。我已经正确地遵循它并努力解决这个问题,但仍然没有任何方法解决这个问题。请帮忙!!行号18 和 26 的问题所在。

什么是飞镖? Google 于去年 12 月首次发布 Flutter 1.0,此前它处于 beta 模式超过 18 个月。 Dart 是用于编写 Flutter 应用程序的编程语言。 Dart 是 Google 的另一款产品,在 Flutter 之前于 11 月发布了 2.1 版。刚开始时,Flutter 社区不像 ReactNative、Ionic 或 Xamarin 那样广泛。

不久前,我发现了对 JavaScript 的喜爱。能够为我的实习开发 ReactNative 移动应用程序让我欣喜若狂。我也喜欢编写混合移动应用程序,所以想尝试一下 Flutter,就像我去年某个时候做过 Xamarin 一样。

第一眼看到 Flutter(和 Dart)时,我感到很困惑,似乎什么也听不懂。他们甚至有一个关于他们的文档的部分,供从 React Native 迁移的开发人员使用。因此,我开始深入研究 Dart 的所有内容

Dart 看起来有点像 C,是一种面向对象的编程语言。因此,如果您更喜欢 C 语言或 Java,那么 Dart 是您的最佳选择,而且您很可能会精通它。

Dart 不仅用于移动应用程序开发,而且还是一种编程语言。它已被 Ecma (ECMA-408) 批准为标准,可用于构建 Web、服务器、桌面,当然还有移动应用程序(是的,这些人对我们最喜欢的 ES5 和 ES6 进行标准化。)

import 'package:Flutter/material.dart';
import 'buttons.dart';
import 'package:math_expressions/math_expressions.dart';

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

bool isOperator(String x) {
  if (x == '%' || x == '/' || x == 'x' || x == '+' || x == '-' || x == '=') {
    return true;
  }
  return false;
}

void equalpressed() {
  String finalQuestion = userQuestion;
  finalQuestion = finalQuestion.replaceAll('x','*');

  Parser p = Parser();
  Expression exp = p.parse(finalQuestion);
  ContextModel cm = ContextModel();
  double eval = exp.evaluate(EvaluationType.REAL,cm);

 userAnswer = eval.toString();
}

class _HomePageState extends State<HomePage> {
  var userQuestion = '';
  var userAnswer = '';

  final List<String> buttons = [
    'C','DEL','%','/','7','8','9','x','4','5','6','-','1','2','3','+','0','00','.','=',];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Color(0xFFE5CCFF),body: Column(
        children: <Widget>[
          Expanded(
            child: Container(
              child: Column(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: <Widget>[
                    SizedBox(
                      height: 50,),Container(
                      padding: EdgeInsets.all(20),alignment: Alignment.centerLeft,child: Text(
                        userQuestion,style: TextStyle(fontSize: 20),alignment: Alignment.centerRight,child: Text(
                        userAnswer,]),Expanded(
            flex: 2,child: Container(
              child: GridView.builder(
                  itemCount: buttons.length,gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                      crossAxisCount: 4),itemBuilder: (BuildContext context,int index) {
                    // clear button
                    if (index == 0) {
                      return MyButton(
                        buttonTapped: () {
                          setState(() {
                            userQuestion = '';
                          });
                        },buttonText: buttons[index],color: Colors.green,textColor: Colors.white,);
                    } else if (index == 1) {
                      // Delete Button
                      return MyButton(
                        buttonTapped: () {
                          setState(() {
                            userQuestion = userQuestion.substring(
                                0,userQuestion.length-1);
                          });
                        },color: Colors.red,);
                    }
                    // equal button
                    else if (index == buttons.length-1) {
                      return MyButton(
                        buttonTapped: () {
                          setState(() {
                            equalpressed();
                          });
                        },color: Colors.deepPurple,);
                    } else {
                      // Rest of the Button
                      return MyButton(
                        buttonTapped: () {
                          setState(() {
                            userQuestion += buttons[index];
                          });
                        },color: isOperator(buttons[index])
                            ? Colors.deepPurple
                            : Colors.deepPurple[50],textColor: isOperator(buttons[index])
                            ? Colors.white
                            : Colors.deepPurple,);
                    }
                  }),],);
  }
}


解决方法

在 _HomePageState 中设置方法 isOperatorequalPressed

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。