import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:math_expressions/math_expressions.dart';
import 'package:path/path.dart' as Path;
import './calculator_buttons.dart';
void main() {
runApp(const CalculatorApp());
//void evaluate;
}
class CalculatorApp extends StatefulWidget {
const CalculatorApp({Key? key}) : super(key: key);
@override
_CalculatorAppState createState() => _CalculatorAppState();
}
class _CalculatorAppState extends State<CalculatorApp> {
int firstNum = 0;
int secondNum = 0;
String history = '';
String texttodisplay = '';
String res = '';
String operation = '';
///
void numClick(String text) {
setState(() => texttodisplay += text);
}
void allClear(String text) {
setState(() {
history = '';
texttodisplay = '';
});
}
void clear(String text) {
setState(() {
texttodisplay = '';
});
}
void evaluate(String text) {
Parser p = Parser();
Expression exp = p.parse(texttodisplay);
ContextModel cm = ContextModel();
//double eval = exp.evaluate(EvaluationType.REAL, cm);
//cm.bindVariable
//double eval = exp.evaluate(EvaluationType.REAL, cm);
setState(() {
history = texttodisplay;
texttodisplay = exp.evaluate(EvaluationType.REAL, cm);
});
}
"cm" 参数类型 'ContextModel 不能分配给参数类型 'ContextModel。
参数类型“ContextModel(其中 ContextModel 在 C:\Users\asus\Documents\calculator\lib\main.dart 中定义)”不能分配给参数类型“ContextModel(其中 ContextModel 在 C 中定义)” :\Android 应用开发\flutter.pub-cache\hosted\pub.dartlang.org\math_expressions-2.1.1\lib\src\evaluator.dart)'.dartargument_type_not_assignable main.dart(395, 7): ContextModel 定义在 C:\Users\asus\Documents\calculator\lib\main.dart evaluator.dart(22, 60):ContextModel 定义在 C:\Android app development\flutter.pub-cache\hosted\pub.dartlang.org\math_expressions-2.1.1\lib\src\evaluator.dart 上下文模型厘米
答案 0 :(得分:0)
错误消息指出 ContextModel
正在文件 main.dart
中重新定义。您确定 cm
正在分配 ContextModel
包的 math_expressions
实例吗?
可以肯定的是,如果您按 ctrl+click,Visual Studio Code 和 Android Studio 应该会引导您找到元素的定义,请尝试按 ContextModel
。
也可以尝试调试,在 cm
后放置一个断点,看看正在分配什么。