需要帮助理解 => Dart 中的符号
Need help understanding => symbol in Dart
我在阅读 first where 时遇到了以下 Dart 代码。我想了解这段代码到底发生了什么,因为这是我不熟悉的一些语法,尤其是“=>”符号。
void main() {
final list = List<Book>.generate(10, (id) => Book(id));
Book findBook(int id) => list.firstWhere((book) => book.id == id);
print(findBook(2).name);
print(findBook(4).name);
print(findBook(6).name);
}
class Book {
final int id;
String get name => "Book$id";
Book(this.id);
}
这就是所谓的Syntaxic sugar
。它不提供特殊功能,但可以让开发人员更轻松地编写和阅读代码。
在=>
符号的cas中,它is a shortcut for a function containing only a return statement。所以这两个定义是完全一样的:
String main() {
return "Hello World"
}
String main() => "Hello World";
但是请注意,第二个更具可读性。
所以在您的情况下,如果我们解开所有内容,您的代码将变成:
void main() {
final list = List<Book>.generate(10, (id) {
return Book(id);
});
Book findBook(int id) {
return list.firstWhere((book) {
return book.id == id;
});
}
print(findBook(2).name);
print(findBook(4).name);
print(findBook(6).name);
}
class Book {
final int id;
String get name {
return "Book$id";
}
Book(this.id);
}
我在阅读 first where 时遇到了以下 Dart 代码。我想了解这段代码到底发生了什么,因为这是我不熟悉的一些语法,尤其是“=>”符号。
void main() {
final list = List<Book>.generate(10, (id) => Book(id));
Book findBook(int id) => list.firstWhere((book) => book.id == id);
print(findBook(2).name);
print(findBook(4).name);
print(findBook(6).name);
}
class Book {
final int id;
String get name => "Book$id";
Book(this.id);
}
这就是所谓的Syntaxic sugar
。它不提供特殊功能,但可以让开发人员更轻松地编写和阅读代码。
在=>
符号的cas中,它is a shortcut for a function containing only a return statement。所以这两个定义是完全一样的:
String main() {
return "Hello World"
}
String main() => "Hello World";
但是请注意,第二个更具可读性。
所以在您的情况下,如果我们解开所有内容,您的代码将变成:
void main() {
final list = List<Book>.generate(10, (id) {
return Book(id);
});
Book findBook(int id) {
return list.firstWhere((book) {
return book.id == id;
});
}
print(findBook(2).name);
print(findBook(4).name);
print(findBook(6).name);
}
class Book {
final int id;
String get name {
return "Book$id";
}
Book(this.id);
}