imprimer les propriétés des objets dans Dart [duplicate]
J'ai un simple fichier Dart:
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);
}
Je veux juste imprimer print("person name $person1.name ");
et je veux une sortie au format person name Rajesh
. Mais je reçois la sortie comme person name Instance of 'Person'.name
.
Besoin d'aide, je suis nouveau sur Dart. »
Réponses
Vous devez utiliser ceci:
print("person name ${person1.name} ");
vous pouvez également remplacer toString
en classe:
@override
String toString() {
return '''
person name $name
''';
}
puis:
print(person1);
Vous vouliez probablement dire:
print("person name: ${person1.name} ");
N'oubliez pas que vous pouvez spécifier une toString()
méthode dans la classe:
class Person {
String name;
int age;
String toString() => "${name} is ${age} years old";
}
et utilisez-le comme suit:
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
}
Ici, l'erreur se trouve dans la chaîne d'interpolation . En général, lorsque vous utilisez plusieurs objets, vous devez utiliser la forme complète de l'interpolation de chaîne ${}
plutôt que simplement $
.
Pour votre code, faites ceci à la place:
print('person name : ${person1.name}');
J'espère que cela vous sera utile.