如何解决为什么分配在Dart中的工作方式与在Python中不同?
当我运行此代码时:
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']}}"
);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。