numbers := new Collection()
numbers.Add(4)
numbers.Add(5)
numbers.Add(9)
numbers.Add(-4)
numbers.AddRange(GenerateRandomNums(10))
numbers.Sort("N") ; Numerisch Sortieren
for each, num in numbers
str .= num "`n"
MsgBox % str
return
; gibt ein paar random nummern zurück
GenerateRandomNums(count){
global
randoms := new Collection()
Loop, % count
{
Random, rnd, 0, 99
randoms.Add(rnd)
}
return randoms
}
/*
Simple Collection Klasse
*/
class Collection
{
; Methoden Implementation
/*
Fügt ein Element der Collection hinzu
*/
Add(obj){
this.Insert(obj)
}
/*
Fügt eine Auflistung dieser Collection hinzu
*/
AddRange(objs){
if(IsObject(objs)){
for each, item in objs
this.Insert(item)
} else
throw(A_ThisFunc " ArgumentException: Must submit Object!")
}
Clear(){
this.Remove(this.MinIndex(), this.MaxIndex())
}
RemoveItem(item){
for k, e in this
if(e = item)
this.Remove(k)
}
/*
Gibt die anzahl Elemente in dieser Collection zurück
*/
Count(){
i := 0
for e in this ; z?hlt alle Elemente
i++
return i
}
/*
Sortiert die Liste
*/
Sort(comparer=""){
if(IsFunc(comparer))
comparer := "F " comparer
for each, num in this
nums .= num "`n"
Sort, nums, % comparer
this.Clear()
Loop, parse, nums, `,
this.Add(A_LoopField)
}
/*
Konstruktor - erstellt eine neue, leere Collection
*/
__New(){
}
}
; fehler meldung
throw(msg){
ListLines
MsgBox,16, Exception, % msg
}
[AHK]数据结构--简单Collection类
最新推荐文章于 2024-07-16 22:26:22 发布