我尝试使用先前在 dart 中定义的变量来访问类值,但我不断收到错误the operator [] isn't defined for the class
在 Javascript 中,我将使用如下变量访问对象值:
let movie = {
movieTitle : 'Toy Story',
actor: 'Tom Hanks'
}
let actorName = 'actor';
console.log(movie[actorName]); // <- what I'm trying to replicate in dart
// expected output: Tom Hanks
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的并抛出该错误
let movie = {
movieTitle : 'Toy Story',
actor: 'Tom Hanks'
}
let actorName = 'actor';
console.log(movie[actorName]); // <- what I'm trying to replicate in dart
// expected output: Tom Hanks
Run Code Online (Sandbox Code Playgroud)
我希望能够即时使用变量来访问该值。
对我来说一个简单的用例是,如果我有一个 Movie 类列表,其中一些演员和制片人为空,我想使用如下函数过滤非空演员或制片人:
List values = movieList.where((i) => i.actor != "null").toList(); // returns all Movies in movieList where the actor value isn't the string "null"
var actorIsNull = 'actor';
List values = movieList.where((i) => i[actorisNull] != "null").toList(); // throws error
Run Code Online (Sandbox Code Playgroud)
小智 10
toMap()您可以在 Movie 类中创建一个函数并使用以下方法访问属性[] operator
class Movie {
String name;
String actor;
String producer;
Map<String, dynamic> toMap() {
return {
'name': name,
'actor' : actor,
'producer' : producer,
};
}
}
Run Code Online (Sandbox Code Playgroud)
现在可以通过以下方式访问 Movie 类属性:
Movie movie = Movie();
movie.toMap()['name'];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5471 次 |
| 最近记录: |