3
當我嘗試將對象轉換爲字符串時,是否存在被調用的默認方法? (如的toString Java或__str__在Python)我希望能夠做對象數組以下,但其中一些可能是零:Chapel中是否有默認的字符串轉換方法?
for item in array {
writeln(item : string);
}
當我嘗試將對象轉換爲字符串時,是否存在被調用的默認方法? (如的toString Java或__str__在Python)我希望能夠做對象數組以下,但其中一些可能是零:Chapel中是否有默認的字符串轉換方法?
for item in array {
writeln(item : string);
}
首先,鑄造零字符串ISN 「T一定有問題:
class C {
var x:int;
}
var array = [ new C(1), nil:C, new C(2) ];
for item in array {
writeln(item : string);
}
輸出
{x = 1}
nil
{x = 2}
其次,如果你也想自定義您的類C的輸出,你會寫一個writeThis方法(或readWriteThis方法)。請參閱The readThis(), writeThis(), and readWriteThis() Methods。 writeThis方法將被調用既用於強制轉換爲字符串也用於正常的I/O。例如:
class C {
var x:int;
proc writeThis(writer) {
writer.writef("{%010i}", x);
}
}
var array = [ new C(1), nil:C, new C(2) ];
for item in array {
writeln("writing item : string ", item : string);
writeln("writing item ", item);
}
輸出
writing item : string {0000000001}
writing item {0000000001}
writing item : string nil
writing item nil
writing item : string {0000000002}
writing item {0000000002}
還有更多的,我可以說一下爲什麼是這樣工作的,它可能會在未來做的,目前戰略的侷限性......但如果您希望獲得此類討論,郵件列表將成爲更好的討論場所。