Comparer.ms
struct ComparerStruct
2つのオブジェクトが等しいかどうかを比較する。
- 補足
戻り値が以下のような関係になるように実装する。
値 関係 -1aはbより小さい0aとbは等しい1aはbより大きい
private stringLogicalComparer
- プロパティ
<DotNetMethod>
public fn CompareName
Nameプロパティを比較する。
- パラメータ
a<Any>
- パラメータ
b<Any>
- 戻り値
<Integer>
- 補足
値が文字列の場合は
CompareStringLogicalを利用する。
public fn CompareNodeHandle
ノードハンドルを比較する。
- パラメータ
a<Node>
- パラメータ
b<Node>
- 戻り値
<Integer>
public fn CompareProperty
任意のプロパティを比較する。
- パラメータ
a<Any>
- パラメータ
b<Any>
- パラメータ
propName:<Name|String>プロパティ名。
- 戻り値
<Integer>
- 補足
値が文字列の場合は
CompareStringLogicalを利用する。
public fn CompareStringLogical
文字列中の数字を数値として比較する。
- パラメータ
a<String>
- パラメータ
b<String>
- 戻り値
<Integer>
- 補足
- 例
-
( local strings = #( "20string", "2string", "3string", "st20ring", "st2ring", "st3ring", "string2", "string20", "string3" ) qsort strings (::ComparerStruct()).CompareStringLogical for str in strings do format "-- \"%\"\n" str ok ) -- 実行結果 -- "2string" -- "3string" -- "20string" -- "st2ring" -- "st3ring" -- "st20ring" -- "string2" -- "string3" -- "string20"
private fn simpleCompare
- パラメータ
a<Any>
- パラメータ
b<Any>
- 戻り値
<Integer>
public fn StructName
- 戻り値
<Name>
public fn Dump
- パラメータ
indent:<String>
- パラメータ
out:<FileStream|StringStream|WindowStream>出力先。既定値は
listener。
- 戻り値
<OkClass>
public fn Equals
- パラメータ
obj<Any>
- 戻り値
<BooleanClass>
- 補足
大文字と小文字を区別する。