问题描述
当我运行此代码时:
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的分配方式有关吗?
解决方法
结果在各自的块中声明,它不存在于外部。这样做:
void readCard(db,[int card_id = -1]) {
ResultSet result;
if (card_id == -1) {
result = db.select('SELECT * FROM cards');
}
else {
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']}}"
);
}
}