imprimer les propriétés des objets dans Dart [duplicate]

Dec 10 2020

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

2 BeHappy Dec 10 2020 at 22:24

Vous devez utiliser ceci:

print("person name ${person1.name} ");

vous pouvez également remplacer toStringen classe:

  @override
  String toString() {
    return '''
            person name $name
        ''';
  }

puis:

print(person1);
1 StefanoA. Dec 10 2020 at 22:28

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
}
Agkab Dec 10 2020 at 22:50

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.