我应该注意,我来自TypeScript背景,它为我的很多视角/命名法着色。
在TypeScript中,您可以非常容易地定义递归接口:
interface User {
name: string,
friends: User[]
}
const bob:User = {
name: "Bob",
friends: []
}
在达特你会怎么做?
解决方案没有太大区别。
class User {
String name;
List<User> friends;
}
void main() {
var bob = User();
bob.name = "Bob";
bob.friends = [User(), User(), User()];
print(bob.name); // Bob
print(bob.friends); // [Instance of 'User', Instance of 'User', Instance of 'User']
}