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}');

それがお役に立てば幸いです。