我刚刚看一下dart的3º教程,创建了评级组件。我想知道在对字符串进行字符串化时是否有相同的方法,类似于Java的toString。
例如:
MyClass myObject = new MyClass();
System.out.println(myObject);
如果覆盖将调用MyClass.toString(),否则将调用它的父级,直到达到java.lang.Object,给出默认的toString。
我觉得有点丑陋(完全主观):
<span ng-repeat="star in cmp.stars" > {{star.toString()}} </span>
我宁愿这样做:
<span ng-repeat="star in cmp.stars" > {{star}} </span>
并实现我希望它以一种经过验证的方法显示的方式。这可能吗?
答案 0 :(得分:6)
是的,对于print
,字符串插值或角度胡须,它的工作原理如下。
通过覆盖对象上的String toString()
方法,显示的值将是此toString()
调用的结果。如果在类层次结构中没有定义toString()
,则会调用toString()
的{{1}}(Object
将返回Instance of 'MyClass'
。)
答案 1 :(得分:5)
如果你有这样的事情:
class MyClass {
String data;
MyClass(this.data);
@override
String toString() {
return data;
}
}
MyClass myObject = new MyClass("someData");
print(myObject); // outputs "someData", not 'Instance of MyClass'
我认为这可能就是你要找的东西。
答案 2 :(得分:1)
您可能会对Angular Dart UI项目中如何实现Rating组件感兴趣。检查this。
塞吉。