°´Ã¼

¿ÀÅäÇÖÅ°ÀÇ ±âº» °´Ã¼ µ¥ÀÌÅÍÀ¯ÇüÀº ¿¬°ü ¹è¿­ÀÔ´Ï´Ù. ±×ÀÇ ÇàÀ§¸¦ Àç´ÜÇÒ ¼ö Àִ Ư¡ÀÌ ÀÖ½À´Ï´Ù. ±âº»°ªÀ¸·Î, {}, [], Object() ±×¸®°í Array()°¡ »ý¼ºÇÑ ¸ðµç °´Ã¼´Â ´ÙÀ½ ¸Þ½îµå¸¦ Áö¿øÇÕ´Ï´Ù:

ºñÃßõ (»ç¿ëÀ» ±ÇÀåÇÏÁö ¾Ê½À´Ï´Ù):

°¢ ¸Þ½îµå ¸¶´Ù µ¿µîÇÑ ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é ´Ù¸¥ °´Ã¼°¡ ±¸ÇöÇÑ ¸ÂÃã ÇàÀ§¸¦ ¿ìȸÇÒ ¼ö ÀÖ½À´Ï´Ù -- ÀÌ ÇÔ¼öµéÀº ²À ¿ìȸÀÇ ¸ñÀûÀ¸·Î¸¸ »ç¿ëÇϽñ⸦ ±ÇÀåÇÕ´Ï´Ù. È£ÃâÇÏ·Á¸é, ¸Þ½îµå À̸§ ¾Õ¿¡ "Obj"¸¦ ºÙÀÎ ´ÙÀ½ ¸ñÇ¥ °´Ã¼¸¦ ù ¹ø° ¸Å°³º¯¼ö·Î °Ç³×½Ê½Ã¿À. ¿¹¸¦ µé¾î:

array := [1, 2, 3]
MsgBox % ObjMaxIndex(array) " = " array.MaxIndex()

Obj ÇÔ¼ö°¡ À߸øµÈ À¯ÇüÀÇ °´Ã¼ ¶Ç´Â °ªÀ¸·Î È£ÃâµÇ¸é, ºó ¹®ÀÚ¿­À» µ¹·ÁÁÝ´Ï´Ù.

 

InsertAt [v1.1.21+]

Çϳª ÀÌ»óÀÇ °ªÀ» ¼±Çü ¹è¿­ ¾È¿¡ ÁÖ¾îÁø À§Ä¡¿¡ »ðÀÔÇÕ´Ï´Ù..

Object.InsertAt(Pos, Value1 [, Value2, ... ValueN])
Pos

Value1À» »ðÀÔÇÒ À§Ä¡. ¿¬ÀÌÀº °ªÀº Pos+1, Pos+2, µîµî¿¡ »ðÀԵ˴ϴÙ.

Value1 ...

»ðÀÔÇÒ Çϳª ÀÌ»óÀÇ °ªµé. °ª ¹è¿­À» »ðÀÔÇÏ·Á¸é, ¸¶Áö¸· ¸Å°³º¯¼ö·Î theArray*¸¦ °Ç³×½Ê½Ã¿À.

³íÆò

InsertAtÀº RemoveAt°ú »ó´ëÀûÀÔ´Ï´Ù.

°´Ã¼´Â ¿¬°ü ¹è¿­À̹ǷÎ, Posµµ Value1 °ª°ú ¿¬°üµÇ´Â Á¤¼ö Å°ÀÔ´Ï´Ù. ÀÌÀü¿¡ Pos À§Ä¡¿Í ±× ¿À¸¥ÂÊ¿¡ ÀÖ´Â Ç׸ñµéÀº Á¤È®ÇÏ°Ô ¸Å°³º¯¼öÀÇ °¹¼ö¸¸Å­ ¿À¸¥ÂÊÀ¸·Î À̵¿ÇÕ´Ï´Ù. ±× °á°ú ¸î¸î °ªµéÀÌ ¼Ò½ÇµÉ ¼ö ÀÖ½À´Ï´Ù (Áï, ÀÌ °´Ã¼´Â Èñ¼Ò ¹è¿­ÀÔ´Ï´Ù). ¿¹¸¦ µé¾î:

x := []
x.InsertAt(1, "A", "B") ; =>  ["A", "B"]
x.InsertAt(2, "C")      ; =>  ["A", "C", "B"]

; ¼º±ä/ÇÒ´çµÇÁö ¾ÊÀº ¿ø¼Ò´Â º¸Á¸µË´Ï´Ù:
x := ["A", , "C"]
x.InsertAt(2, "B")      ; =>  ["A", "B",    , "C"]

x := ["C"]
x.InsertAt(1, , "B")    ; =>  [   , "B", "C"]

InsertAtÀº °´Ã¼ÀÇ Á¤¼ö Å°°¡ ¼±Çü ¹è¿­ ¾ÈÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â °æ¿ì¿¡¸¸ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±× °´Ã¼¿¡ ID³ª ÇÚµé °°ÀÌ ÀÓÀÇÀÇ Á¤¼ö Å°°¡ ´ã°Ü ÀÖÀ¸¸é, InsertAtÀº ¿øÄ¡ ¾Ê´Â ºÎÀÛ¿ëÀ» ¾ß±âÇÒ °¡´É¼ºÀÌ ³ô½À´Ï´Ù. ¿¹¸¦ µé¾î:

x := [], handleX := 0x4321, handleY := 0x1234
x.InsertAt(handleX, "A")
MsgBox % x[handleX]  ; A - okay
x.InsertAt(handleY, "B")
MsgBox % x[handleX]  ; ºñ¾î ÀÖ½À´Ï´Ù
MsgBox % x[handleX+1]  ; ÀÌ°÷ÀÌ "B"ÀÇ »õ "À§Ä¡"ÀÔ´Ï´Ù.

InsertAtÀº ¹®ÀÚ¿­À̳ª °´Ã¼ Å°¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê½À´Ï´Ù. ±×·¡¼­ È¥ÇÕ Å° À¯ÇüÀÌ ´ã±ä °´Ã¼¿Í ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

RemoveAt [v1.1.21+]

¼±Çü ¹è¿­¿¡¼­ ÁÖ¾îÁø À§Ä¡·ÎºÎÅÍ Ç׸ñÀ» Á¦°ÅÇÕ´Ï´Ù.

Object.RemoveAt(Pos [, Length])
Pos

Á¦°ÅÇÒ °ªÀÇ À§Ä¡.

Length

Á¦°ÅÇÒ °ªÀÇ ¹üÀ§ÀÇ ±æÀÌ. PosºÎÅÍ Pos+Length-1±îÁöÀÇ Ç׸ñÀÌ Á¦°ÅµË´Ï´Ù. »ý·«Çϸé, ÇϳªÀÇ Ç׸ñ¸¸ Á¦°ÅµË´Ï´Ù.

¹Ýȯ °ª

¸¸¾à Length°¡ »ý·«µÇ¸é, Pos¿¡¼­ Á¦°ÅµÈ °ªÀÌ ¹ÝȯµË´Ï´Ù (¾øÀ¸¸é ºñ¾î ÀÖ½À´Ï´Ù). ±×·¸Áö ¾ÊÀ¸¸é, °ªÀ» °¡Áø Ç׸ñÀÌ Á¦°ÅµÈ °³¼ö°¡ ¹Ýȯ °ªÀÔ´Ï´Ù. ÀÌ°ÍÀº Èñ¼Ò ¹è¿­ÀÇ Length¿Í ´Ù¸£Áö¸¸, ¾ðÁ¦³ª 0ºÎÅÍLength (Æ÷ÇÔ) »çÀÌÀÔ´Ï´Ù.

³íÆò

RemoveAtÀº InsertAt¿¡ »ó´ëÀûÀÔ´Ï´Ù.

Pos ¿À¸¥ÂÊÀÇ ³ª¸ÓÁö Ç׸ñµéÀº ¿ÞÂÊÀ¸·Î Length ¸¸Å­ (¶Ç´Â »ý·«µÇ¸é 1¸¸Å­) À̵¿ÇÕ´Ï´Ù. Á¦°ÅµÈ ¹üÀ§¿¡¼­ ¾î¶² Ç׸ñµéÀº °ªÀÌ ¾ø´õ¶óµµ »ó°üÀÌ ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î:

x := ["A", "B"]
MsgBox % x.RemoveAt(1)  ; A
MsgBox % x[1]           ; B

x := ["A", , "C"]
MsgBox % x.RemoveAt(1, 2)  ; 1
MsgBox % x[1]              ; C

RemoveAtÀº ±× °´Ã¼ÀÇ Á¤¼ö Å°°¡ ¼±Çü ¹è¿­¿¡¼­ À§Ä¡¸¦ ³ªÅ¸³¾ °æ¿ì¿¡¸¸ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±× °´Ã¼ ¾È¿¡ ID³ª ÇÚµé °°ÀÌ ÀÓÀÇÀÇ Á¤¼öÅ°°¡ ÀÖ´Ù¸é, RemoveAtÀº ¿øÇÏÁö ¾Ê´Â ºÎÀÛ¿ëÀ» ¾ß±âÇÒ °¡´É¼ºÀÌ ³ô½À´Ï´Ù. ¿¹¸¦ µé¾î:

x := {0x4321: "A", 0x1234: "B"}
MsgBox % x.RemoveAt(0x1234) ; B
MsgBox % x[0x4321]          ; ºñ¾î ÀÖÀ½
MsgBox % x[0x4321-1]        ; A

RemoveAtÀº ¹®ÀÚ¿­À̳ª °´Ã¼ Å°¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù. ±×·¡¼­ È¥ÇÕ Å° À¯ÇüÀÌ ´ã±ä °´Ã¼¿Í ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Push [v1.1.21+]

¹è¿­ÀÇ ³¡¿¡ °ªÀ» Ãß°¡ÇÕ´Ï´Ù.

Object.Push([ Value, Value2, ..., ValueN ])
Value ...

»ðÀÔÇÒ Çϳª ÀÌ»óÀÇ °ª. °ª ¹è¿­À» »ðÀÔÇÏ·Á¸é, ¸¶Áö¸· ¸Å°³º¯¼ö·Î theArray*¸¦ °Ç³×½Ê½Ã¿À.

¹Ýȯ °ª

°¡Àå ¸¶Áö¸·À¸·Î »ðÀÔµÈ °ªÀÇ À§Ä¡, ¹è¿­ÀÌ À½¼ö ÁöÇ¥¿¡ ¿ø¼Ò¸¦ °¡Áö°í ÀÖ´Ù¸é À½ÀÇ Á¤¼öÀÏ ¼ö ÀÖ½À´Ï´Ù.

³íÆò

¹è¿­ÀÌ ºñ¾î ÀÖ°Å ¶Ç´Â ¿ÀÁ÷ ¹®ÀÚ¿­À̳ª °´Ã¼ Å°¸¸ ´ã°Ü ÀÖ´Ù¸é ù ¹ø° °ªÀº À§Ä¡ 1¿¡ »ðÀԵ˴ϴÙ.

±×·¸Áö ¾ÊÀ¸¸é, ù ¹ø° °ªÀº Object.MaxIndex() + 1¿¡ »ðÀԵ˴ϴÙ. ±× À§Ä¡°¡ À½¼ö ¶Ç´Â 0ÀÌ¶óµµ »ó°ü¾ø½À´Ï´Ù. ÀÌ À§Ä¡°¡ ¸¶À½¿¡ ¾Èµé°í °´Ã¼¿¡ À½¼ö Å°°¡ µé¾î ÀÖÀ» ¼ö ÀÖ´Ù¸é, ´ë½Å¿¡ Object.InsertAt(Object.Length() + 1, ...)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Pop [v1.1.21+]

¸¶Áö¸· ¹è¿­ ¿ø¼Ò¸¦ Á¦°ÅÇÏ°í µ¹·ÁÁÝ´Ï´Ù.

Value := Object.Pop()

¹è¿­ ¿ø¼Ò°¡ ¾ø´Ù¸é, ¹Ýȯ °ªÀº ºó ¹®ÀÚ¿­ÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ´ÙÀ½°ú µ¿µîÇÕ´Ï´Ù:

Value := Object.RemoveAt(Object.Length())

Delete [v1.1.21+]

Å°-°ª ½ÖÀ» °´Ã¼·ÎºÎÅÍ Á¦°ÅÇÕ´Ï´Ù.

Object.Delete(Key)
Object.Delete(FirstKey, LastKey)
Key

À¯È¿ÇÑ ´ÜÀÏ Å°.

FirstKey, LastKey

À¯È¿ÇÑ ¹üÀ§ÀÇ Á¤¼ö³ª ¹®ÀÚÅ°. FirstKey <= LastKey. µÎ Å° ¸ðµÎ À¯ÇüÀÌ °°¾Æ¾ß ÇÕ´Ï´Ù.

¹Ýȯ °ª

Á¤È®ÇÏ°Ô ¸Å°³º¯¼ö°¡ Çϳª¸¸ ÀÖ´Ù¸é, Á¦°ÅµÈ °ªÀÌ ¹ÝȯµË´Ï´Ù (¾ø´Ù¸é ºó °ªÀ» µ¹·ÁÁÝ´Ï´Ù). ±×·¸Áö ¾ÊÀ¸¸é ¹Ýȯ °ªÀº ¹ß°ßµÇ°Å³ª Á¦°ÅµÈ Å°ÀÇ °³¼öÀÔ´Ï´Ù.

³íÆò

RemoveAt¿Í ´Ù¸£°Ô, Delete´Â Á¦°ÅÇÏÁö ¾ÊÀº Å°-°ª ½Ö¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î:

x := ["A", "B"]
MsgBox % x.RemoveAt(1)  ; A
MsgBox % x[1]           ; B

x := ["A", "B"]
MsgBox % x.Delete(1)    ; A
MsgBox % x[1]           ; ºñ¾î ÀÖÀ½

MinIndex / MaxIndex [AHK_L 31+]

MinIndex := Object.MinIndex()
MaxIndex := Object.MaxIndex()

Á¤¼ö Å°°¡ Á¸ÀçÇϸé, MinIndex´Â °¡Àå ³·Àº °ªÀ» µ¹·ÁÁÖ°í MaxIndex´Â °¡Àå ³ôÀº °ªÀ» µ¹·ÁÁÝ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ºó ¹®ÀÚ¿­À» µ¹·ÁÁÝ´Ï´Ù.

Length [v1.1.21+]

Length := Object.Length()

À§Ä¡ 1¿¡¼­ ½ÃÀÛÇÏ¿© ¼±Çü ¹è¿­ÀÇ ±æÀ̸¦ µ¹·ÁÁÝ´Ï´Ù; Áï, °´Ã¼ ¾È¿¡¼­ °¡Àå ³ôÀº ¾çÀÇ Á¤¼ö Å°¸¦ µ¹·ÁÁÖ°í, ±×°Ô ¾ø´Ù¸é 0À» µ¹·ÁÁÝ´Ï´Ù.

MsgBox % ["A", "B", "C"].Length()  ;  3
MsgBox % ["A",    , "C"].Length()  ;  3
MsgBox % {-10: 0, 10: 0}.Length()  ; 10
MsgBox % {-10: 0, -1: 0}.Length()  ;  0

SetCapacity [AHK_L 31+]

°´Ã¼ÀÇ ¶Ç´Â °´Ã¼ ÇʵåÀÇ °¡¿ë ´É·ÂÀ» Á¶Á¤ÇÕ´Ï´Ù.

Object.SetCapacity(MaxItems)
Object.SetCapacity(Key, ByteSize)
MaxItems°´Ã¼°¡ ´ãÀ» ¼ö ÀÖ´ÂÅ°-°ª ½ÖÀÇ ÃÖ´ë °³¼ö. ÀÌ °ªÀ» ³Ñ¾î¼­¸é ÀÚµ¿À¸·Î È®´ëµË´Ï´Ù. Å°-°ª ½ÖÀÇ ÇöÀç °³¼öº¸´Ù ÀÛÀ¸¸é, ´ë½Å¿¡ ÇöÀç °³¼ö°¡ »ç¿ëµÇ°í, »ç¿ëµÇÁö ¾Ê´Â °ø°£Àº ¸ðµÎ ÇØÁ¦µË´Ï´Ù.
KeyÀ¯È¿ÇÑ Å°¸é ¸ðµÎ.
ByteSizeÇʵåÀÇ ¹®ÀÚ¿­ ¹öÆÛÀÇ ¹ÙÀÌÆ® ´ÜÀ§·Î »õ Å©±â. ³Î Á¾·á ¹®ÀÚ´Â Á¦¿ÜÇÕ´Ï´Ù. Çʵ尡 Á¸ÀçÇÏÁö ¾ÊÀ¸¸é, »õ·Î »ý¼ºµË´Ï´Ù. ByteSize°¡ 0À̸é, ¹öÆÛ°¡ ÇØÁ¦µÇÁö¸¸ ºó Çʵå´Â Á¦°ÅµÇÁö ¾Ê½À´Ï´Ù. ByteSize°¡ ÇöÀç Å©±âº¸´Ù ÀÛÀ¸¸é, ÃÊ°úµÈ µ¥ÀÌÅÍ´Â Àß·Á ³ª°©´Ï´Ù; ±×·¸Áö ¾ÊÀ¸¸é ±âÁ¸ÀÇ ¸ðµç µ¥ÀÌÅÍ°¡ º¸Á¸µË´Ï´Ù.
Returns¼º°øÇÏ¸é »õ °¡¿ë ´É·Â, ±×·¸Áö ¾ÊÀ¸¸é ºó ¹®ÀÚ¿­À» µ¹·ÁÁÝ´Ï´Ù.

GetCapacity [AHK_L 31+]

MaxItems := Object.GetCapacity()
ByteSize := Object.GetCapacity(Key)

°´Ã¼³ª °´Ã¼ ÇʵåÀÇ ÇöÀç °¡¿ë ´É·ÂÀ» µ¹·ÁÁÝ´Ï´Ù.

GetAddress [AHK_L 31+]

Ptr := Object.GetAddress(Key)

ÀÖ´Ù¸é, ÇʵåÀÇ ¹®ÀÚ¿­ ¹öÆÛÀÇ ÇöÀç ÁÖ¼Ò¸¦ µ¹·ÁÁÝ´Ï´Ù.

NewEnum [AHK_L 49+]

Enum := Object._NewEnum()

»õ ¿­°ÅÀÚ(enumerator)¸¦ µ¹·ÁÁÖ¾î ÀÌ °´Ã¼ÀÇ Å°-°ª ½ÖÀ» ¿­°ÅÇÕ´Ï´Ù. ÀÌ ¸Þ½îµå´Â º¸Åë Á÷Á¢ È£ÃâµÇÁö ¾Ê°í, for-ȸµ¹ÀÌ ¾È¿¡¼­ »ç¿ëµË´Ï´Ù.

HasKey [AHK_L 53+]

Object.HasKey(Key)

Key°¡ Object ¾ÈÀÇ °ª (even "")¿¡ ¿¬°üµÇ¾î ÀÖÀ¸¸é ÂüÀ», ±×·¸Áö ¾ÊÀ¸¸é °ÅÁþÀ» µ¹·ÁÁÝ´Ï´Ù.

Clone [AHK_L 60+]

Clone := Object.Clone()

°´Ã¼ÀÇ ¾èÀº »çº»À» µ¹·ÁÁÝ´Ï´Ù.

ObjRawSet

Å°-°ª ½ÖÀ» °´Ã¼¿¡ ÀúÀåÇϰųª µ¤¾î¾¹´Ï´Ù.

ObjRawSet(Object, Key, Value)

ÀÌ ÇÔ¼ö·Î ½ºÅ©¸³Æ®´Â __Set ¸ÞŸ-ÇÔ¼ö¸¦ ¿ìȸÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÊ¿äÇÏÁö ¾ÊÀ¸¸é, ´ë½Å¿¡ Á¤»óÀûÀÎ ÇÒ´çÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î: Object[Key] := Value

¸ÞŸ-ÇÔ¼ö¸¦ ¿ìȸÇÏ´Â °ÍÀÌ ¸ñÀûÀ̹ǷÎ, ¸Þ½îµå°¡ ¾Æ´Ï¶ó ÇÔ¼öÀÔ´Ï´Ù. ³»Àå ¸Þ½îµå¸¦ È£ÃâÇϸé ÀϹÝÀûÀ¸·Î __Call meta-ÇÔ¼ö°¡ È£ÃâµË´Ï´Ù.

Insert [AHK_L 31+]

ºñÃßõ: Insert´Â »õ ½ºÅ©¸³Æ®¿¡ »ç¿ëÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å¿¡ InsertAt, Push, ObjRawSet ¶Ç´Â ±×³É ´Ü¼øÇÏ°Ô ÇÒ´çÀ» »ç¿ëÇϽʽÿÀ.

Å°-°ª ½ÖÀ» °´Ã¼¿¡ »ðÀÔÇÕ´Ï´Ù. Á¤¼ö Å°°¡ ÁÖ¾îÁö¸é ÀÚµ¿À¸·Î ±âÁ¸ÀÇ Å°¸¦ Á¶Á¤ÇÕ´Ï´Ù.

Object.Insert(Pos, Value1 [, Value2, ... ValueN ])
Object.Insert(Value)
Object.Insert(StringOrObjectKey, Value)

InsertÀÇ ÇàÀ§´Â ¸Å°³º¯¼öÀÇ °³¼ö ±×¸®°í À¯Çü¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù:

Insert´Â true¸¦ µ¹·ÁÁÝ´Ï´Ù. v1.1.21 ÀÌÈÄ¿¡¼­, ¸Þ¸ð¸® ÇÒ´çÀÌ ½ÇÆÐÇÏ¸é ¿¹¿Ü°¡ ´øÁ®Áý´Ï´Ù. ÀÌÀü ¹öÀü¿¡¼­´Â ±× °æ¿ì ºó ¹®ÀÚ¿­À» µ¹·ÁÁÖ¾ú½À´Ï´Ù.

Remove [AHK_L 31+]

ºñÃßõ: Remove´Â »õ ½ºÅ©¸³Æ®¿¡ »ç¿ëÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å¿¡ RemoveAt, Delete ¶Ç´Â PopÀ» »ç¿ëÇϽʽÿÀ.

°´Ã¼·ÎºÎÅÍ Å°-°ª ½ÖÀ» Á¦°ÅÇÕ´Ï´Ù.

Object.Remove(FirstKey, LastKey)

RemoveÀÇ ÇàÀ§´Â ¸Å°³º¯¼öÀÇ °³¼ö¿Í À¯Çü¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù: