09-10-2013, 06:02 PM
open-controls のソースを見ていたところ、「#t」という型の定義を見かけました。
内容をみるかぎり、どんな型のインスタンスがくるかわからないときに利用しているようなのですが、
これは「any」とは違うのでしょうか。
また、配列の {Array-of t:Type} のように、型定義に 「Type」や、「ClassType」を指定しているものもありますが、
これらにも違いはあるのでしょうか。
もしご存知の型がいらっしゃったら教えてください。
内容をみるかぎり、どんな型のインスタンスがくるかわからないときに利用しているようなのですが、
これは「any」とは違うのでしょうか。
また、配列の {Array-of t:Type} のように、型定義に 「Type」や、「ClassType」を指定しているものもありますが、
これらにも違いはあるのでしょうか。
もしご存知の型がいらっしゃったら教えてください。
Code:
{define-class public {DisplayFrame-of t:Type} {inherits BaseFrame}
field private _contents:#t = null
field private _display?:bool = true
{constructor public {default
contents:#t = null,
display?:bool=true,
...
}
{construct-super ...}
set self.display? = display?
set self.contents = contents
}
{getter public {contents}:#t {return self._contents}}
{setter public {contents value:#t}:void
{if value != self._contents then
set self._contents = value
{self.clear}
{if-non-null value then
{if self.display? then
{self.add-internal value}
}
}
}
}
{getter public {display?}:bool {return self._display?}}
{setter public {display? value:bool}:void
{if value != self._display? then
set self._display? = value
{if not value then
{self.clear}
else
{if-non-null con = self._contents then
{self.add-internal con}
}
}
}
}
}
{def df:{DisplayFrame-of Scrollbar} = {{DisplayFrame-of Scrollbar} contents = {Scrollbar}}}
{value df}
{value {type-of df.contents}}