按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用?
按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用?,java,c#,flutter,dart,Java,C#,Flutter,Dart,按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用 Person p = new Person() { FirstName = "John", LastName = "Doe", Address = new Address() { Street = "1234 St.", City = "Phoenix" }
Person p = new Person()
{
FirstName = "John",
LastName = "Doe",
Address = new Address()
{
Street = "1234 St.",
City = "Phoenix"
}
};
要在Dart中获得相同的效果,请在构造函数中使用命名参数。例如:
class Person {
Person({ this.firstName, this.lastName, this.address, this.tn });
String firstName;
String lastName;
String tn;
Address address;
}
class Address {
Address({ this.street, this.city, this.zip });
String street;
String city;
String zip;
}
// create a person with no fields initialized
var person = Person();
// only init first and last
var person1 = Person(firstName: 'John', lastName: 'Doe');
// this is equivalent to the OPs question
var person2 = Person(address: Address(street: '1234 St.', city: 'Phoenix'),
lastName: 'Doe', firstName: 'John');
现在,您可以使用命名参数初始化这些类中的部分或所有字段,只需提供所需的参数和值,并且可以按任意顺序进行初始化。例如:
class Person {
Person({ this.firstName, this.lastName, this.address, this.tn });
String firstName;
String lastName;
String tn;
Address address;
}
class Address {
Address({ this.street, this.city, this.zip });
String street;
String city;
String zip;
}
// create a person with no fields initialized
var person = Person();
// only init first and last
var person1 = Person(firstName: 'John', lastName: 'Doe');
// this is equivalent to the OPs question
var person2 = Person(address: Address(street: '1234 St.', city: 'Phoenix'),
lastName: 'Doe', firstName: 'John');
不。这是dart的错误语法。dart中没有匿名类