wydrukuj właściwości obiektu w Dart [duplikat]
Dec 10 2020
Mam prosty plik 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);
}
Chcę tylko wydrukować print("person name $person1.name ");
i chcę wydrukować jako person name Rajesh
. Ale otrzymuję dane wyjściowe jako person name Instance of 'Person'.name
.
Potrzebuję pomocy, jestem nowy w Dart. `
Odpowiedzi
2 BeHappy Dec 10 2020 at 22:24
Musisz tego użyć:
print("person name ${person1.name} ");
alternatywnie możesz nadpisać toString
w klasie:
@override
String toString() {
return '''
person name $name
''';
}
następnie:
print(person1);
1 StefanoA. Dec 10 2020 at 22:28
Prawdopodobnie miałeś na myśli:
print("person name: ${person1.name} ");
Pamiętaj, że możesz określić toString()
metodę w klasie:
class Person {
String name;
int age;
String toString() => "${name} is ${age} years old";
}
i użyj go w następujący sposób:
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
Tutaj błąd znajduje się w ciągu interpolacji . Ogólnie, gdy używasz więcej niż jednego obiektu, powinieneś używać pełnej postaci interpolacji ciągów, ${}
a nie tylko $
.
Zamiast tego zrób to dla swojego kodu:
print('person name : ${person1.name}');
Mam nadzieję, że ci się to przyda.