печать свойств объекта в 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}');

Надеюсь, это будет вам полезно.