печать свойств объекта в Dart [дубликат]
Dec 10 2020
У меня есть простой файл 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);
}
Я просто хочу распечатать print("person name $person1.name ");
и выводить как person name Rajesh
. Но я получаю вывод как person name Instance of 'Person'.name
.
Нужна помощь, я новичок в Дарт. `
Ответы
2 BeHappy Dec 10 2020 at 22:24
Вы должны использовать это:
print("person name ${person1.name} ");
в качестве альтернативы вы можете переопределить toString
в классе:
@override
String toString() {
return '''
person name $name
''';
}
тогда:
print(person1);
1 StefanoA. Dec 10 2020 at 22:28
Вы, наверное, имели в виду:
print("person name: ${person1.name} ");
Помните, что вы можете указать toString()
метод в классе:
class Person {
String name;
int age;
String toString() => "${name} is ${age} years old";
}
и используйте его следующим образом:
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
Здесь ошибка в строке интерполяции . В общем, когда вы используете более одного объекта, вы должны использовать полную форму строковой интерполяции, ${}
а не просто $
.
Вместо этого для вашего кода сделайте следующее:
print('person name : ${person1.name}');
Надеюсь, это будет вам полезно.