Dart에서 toString()은 Object 클래스에 정의된 메서드이다. 이 메서드는 객체를 문자열로 변환하여 반환하는 역할을 한다. Dart의 모든 클래스는 Object 클래스를 상속하므로, 모든 클래스는 toString() 메서드를 사용할 수 있다.
기본적으로, toString() 메서드는 클래스의 인스턴스를 식별하는 문자열을 반환한다. 이 문자열은 "Instance of 'ClassName'"과 같은 형식일 수 있다. 예를 들어, 다음은 Person 클래스의 toString() 메서드의 기본 구현이다.
class Person {
String name;
int age;
Person(this.name, this.age);
String toString() {
return 'Person{name: $name, age: $age}';
}
}
void main() {
var person = Person('John', 30);
print(person.toString()); // 출력: Person{name: John, age: 30}
}
하지만, 필요에 따라 toString() 메서드를 사용자 정의할 수도 있다. 예를 들어, Person 클래스에서 이름만을 출력하도록 toString()을 재정의할 수도 있다.
toString() {
return 'Person{name: $name}';
}
String
이제 person.toString()을 호출하면 "Person{name: John}"과 같은 문자열이 출력된다.
toString() 메서드는 디버깅 및 로깅을 위해 주로 사용된다. 객체의 내용을 문자열로 표시하여 디버깅 과정에서 객체의 상태를 확인할 수 있다. 또한, 문자열 보간(interpolation)을 사용하여 객체의 속성을 포함한 읽기 쉬운 형식으로 표시할 수도 있다.
참고: Dart에서는 print() 함수를 호출할 때, 인수로 전달한 객체의 toString() 메서드가 자동으로 호출되어 출력된다. 따라서, print(person)과 print(person.toString())는 동일한 결과를 출력한다.