【发布时间】:2020-09-21 08:20:37
【问题描述】:
当我运行这段代码时:
void readCard(db, [int card_id = -1]) {
if (card_id == -1) {
final ResultSet result = db.select('SELECT * FROM cards');
}
else {
final ResultSet result = db.select("""
SELECT * FROM cards
WHERE card_id=(?)
"""); // this doesn't work yet
}
for (final Row card in result) {
print(
"Card {'card_id': ${card['card_id']}, "
"'due': ${card['due']}, "
"'content': ${card['content']}}"
);
}
}
我收到此错误:
memotext.dart:66:25: Error: Getter not found: 'result'.
for (final Row card in result) {
^^^^^^
因为result不管是if语句还是else语句都被赋值,不应该没有错误吗?这与 dart 的赋值方式有关吗?
【问题讨论】:
-
我很确定
result都被限定在它们的块中,并且在块 dart.dev/guides/language/language-tour#lexical-scope 之后不存在 -
请原谅我这个愚蠢的问题。我习惯了似乎是动态范围的 Python。