【发布时间】:2019-07-14 04:08:48
【问题描述】:
我从一个演示中复制了这段代码的基本结构,并根据自己的需要对其进行了调整(并为这个问题减少了它)。
但我对一些事情感到困惑。也许 Dart 专家可以启发我......
import 'package:flutter/material.dart';
// Show policy widget - shows
class ShowPolicy extends StatelessWidget {
final Policy policy;
ShowPolicy(this.policy);
@override
Widget build(BuildContext context) {
return Text('Test text ' + policy.riskName + ' ' + policy.policyNumber);
}
}
// Policy class
class Policy {
final String riskName;
final String policyNumber;
Policy( { this.riskName, this.policyNumber } );
}
// what is this variable doing here?. Shouldn't it be an a class?
List<Policy> allPolicies = [
Policy(riskName: 'Lilly', policyNumber: 'PY123456-4'),
Policy(riskName: 'Lilly', policyNumber: 'PY123456-3'),
Policy(riskName: 'Lilly', policyNumber: 'PY123456-2'),
Policy(riskName: 'Farnesbarnes', policyNumber: 'PY123647-1')
];
所以基本上ShowPolicy 返回一个文本小部件。它有一个接受Policy 对象的构造函数。
Policy 类包含 2 个成员变量,riskName 和 policyNumber。
我的问题是:-
什么拥有最后声明的allPolicies 变量?为什么在这里允许,为什么不必在类中声明?
但我的主要问题是:- 为什么 Policy 类构造函数变量包含在花括号 {} 中?如果我删除它们,Policy 类仍然可以编译,但现在allPolicies 变量没有(错误消息是'2 required arguments expected but 0 found')
【问题讨论】: