imprimir las propiedades del objeto en Dart [duplicado]
Dec 10 2020
Tengo un archivo Dart simple:
class Person {
String name;
int age;
}
void main() {
var person1 = Person();
person1.name = 'Rajesh';
person1.age = 20;
print("person name $person1.name ");
print(person1.name);
}
Solo quiero imprimir print("person name $person1.name ");
y quiero la salida como person name Rajesh
. Pero estoy obteniendo resultados como person name Instance of 'Person'.name
.
Necesito ayuda, soy nuevo en Dart. '
Respuestas
2 BeHappy Dec 10 2020 at 22:24
Tienes que usar esto:
print("person name ${person1.name} ");
alternativamente, puede anular toString
en clase:
@override
String toString() {
return '''
person name $name
''';
}
luego:
print(person1);
1 StefanoA. Dec 10 2020 at 22:28
Probablemente quisiste decir:
print("person name: ${person1.name} ");
Recuerda que puedes especificar un toString()
método en la clase:
class Person {
String name;
int age;
String toString() => "${name} is ${age} years old";
}
y utilícelo de la siguiente manera:
class Person {
String name;
int age;
String toString() => "${this.name} is ${this.age} years old";
}
void main() {
Person person = new Person();
person.name = "John";
person.age = 25;
print(person); // John is 25 years old
}
Agkab Dec 10 2020 at 22:50
Aquí, el error está en la cadena de interpolación . En general, cuando usa más de un objeto, debe usar la forma completa de la interpolación de cadenas en ${}
lugar de solo $
.
Para su código, haga esto en su lugar:
print('person name : ${person1.name}');
Espero que te sea de utilidad.