Comparer.ms
struct ComparerStruct
2つのオブジェクトが等しいかどうかを比較する。
- 補足
戻り値が以下のような関係になるように実装する。
値 関係 -1
a
はb
より小さい0
a
とb
は等しい1
a
は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>
- 補足
大文字と小文字を区別する。