API Basic NamedArguments ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Named arguments / :=

ClassicUO โ€ข Basic

์ด๋ฆ„ ์žˆ๋Š” ์ธ์ˆ˜๋Š” ์„ ์–ธ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์— ๊ฐ’์„ ์—ฐ๊ฒฐํ•˜๋ฏ€๋กœ ์„ ์–ธ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์‹œ์ €, ํ•จ์ˆ˜, ๋ชจ๋“ˆ, ๋“ฑ๋ก๋œ Basic/UO ํ•จ์ˆ˜์™€ ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐ์ฒด ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ ๊ตฌ๋ฌธ

FunctionName(parameterName:=expression, otherName:=expression)
FunctionName(positionalExpression, optionalName:=expression)
FunctionName([reservedName]:=expression)

๋งค๊ฐœ๋ณ€์ˆ˜

  • parameterName / [reservedName] โ€” ์„ ์–ธ์ด๋‚˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜์˜ ์ด๋ฆ„์œผ๋กœ name:=value๋ฅผ ์“ฐ๋ฉฐ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ์•ฝ์–ด ์ด๋ฆ„์€ [to]:=100์ฒ˜๋Ÿผ ๋ฌถ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ด„ํ˜ธ๋Š” ์ด๋ฆ„์„ ์ด์Šค์ผ€์ดํ”„ํ•˜๋ฉฐ ๋ฐฐ์—ด ์ธ๋ฑ์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์•Œ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ค‘๋ณต๋œ ์ด๋ฆ„์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.
  • expression โ€” ์ œ๊ณตํ•œ ์‹์€ ์ž‘์„ฑ ์ˆœ์„œ๋Œ€๋กœ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ๋ฒˆ์”ฉ ๊ณ„์‚ฐ๋œ ๋’ค ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ํ˜•์‹, ๋ฒ”์œ„, ByVal/ByRef๋Š” ํ˜ธ์ถœ ํ•จ์ˆ˜์˜ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด๋ฆ„ ์ง€์ •์œผ๋กœ ์ผ๋ฐ˜ ๊ฐ’์ด ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋กœ ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • positionalExpression / optionalName โ€” ์œ„์น˜ ์ธ์ˆ˜๋ฅผ ๋จผ์ € ์“ฐ๊ณ  ์ฒซ ์ด๋ฆ„ ์žˆ๋Š” ์ธ์ˆ˜ ๋’ค์—๋Š” ๋ชจ๋‘ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์„ธ์š”. ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ƒ๋žตํ•œ ์Šคํฌ๋ฆฝํŠธ Optional์€ ์ „๋‹ฌ ์‹์„ ๊ณ„์‚ฐํ•œ ๋’ค ์„ ์–ธ ์ˆœ์„œ๋Œ€๋กœ ๊ธฐ๋ณธ ์‹์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์˜ค๋ฒ„๋กœ๋“œ๋Š” ๋“ฑ๋ก๋œ ์ด๋ฆ„๊ณผ ๊ฐœ์ˆ˜๋งŒ ์‚ฌ์šฉํ•˜๋ฉฐ ์ž„์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

:= ์ž์ฒด๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜/API๋Š” ์›๋ž˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  Sub์—๋Š” ์•”์‹œ์  ๊ฒฐ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” Integer 129์™€ String "21:12", "20:10:2"๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ Boolean ์„ฑ๊ณต ํ‘œ์‹œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋™์ž‘

  • ์ค€๋น„ ๋‹จ๊ณ„๋Š” ์ž˜๋ชป๋œ ์ด๋ฆ„, ์ค‘๋ณต, ํ•„์ˆ˜ ์ธ์ˆ˜ ๋ˆ„๋ฝ ๋˜๋Š” ๋ชจํ˜ธ์„ฑ์„ ์†Œ์Šค ์œ„์น˜์™€ SC027๋กœ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ๊ฐ์ฒด๋Š” ์‹คํ–‰ ์‹œ ์ธ์ˆ˜ ์‹์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์ „์— ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์˜ค๋ฒ„๋กœ๋“œ๊ฐ€ ์—†๋‹ค๊ณ  ์ธ์ˆ˜ ์—†๋Š” ํ˜ธ์ถœ๋กœ ๋Œ€์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ •์  ํ˜ธ์ถœ ์œ„์น˜์˜ ๋ถˆ๋ณ€ ๋งคํ•‘์„ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹์€ ์†Œ์Šค ์ˆœ์„œ๋กœ ๊ณ„์‚ฐํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜ ๋Œ€์ž…๊ณผ ByRef ์“ฐ๊ธฐ๋Š” ๋งคํ•‘์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’๊ณผ ๋””๋ฒ„๊ฑฐ ์ธ์ˆ˜๋Š” ์„ ํƒํ•œ ์‹œ๊ทธ๋‹ˆ์ฒ˜์— ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ์ˆ˜์‹  ๊ฐ์ฒด๋Š” ๋งค ํ˜ธ์ถœ๋งˆ๋‹ค ์บก์ฒ˜ํ•˜๋ฉฐ ์ด์ „ ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ParamArray๋Š” ์ด๋ฆ„์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„ ์žˆ๋Š” ํ˜ธ์ถœ์—์„œ๋Š” ๋น„์›Œ ๋‘˜ ์ˆ˜ ์žˆ์ง€๋งŒ ์š”์†Œ๋ฅผ ์ „๋‹ฌํ•˜๋ ค๋ฉด ๋ชจ๋‘ ์œ„์น˜ ์ธ์ˆ˜๋กœ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‰ผํ‘œ ์‚ฌ์ด ๋นˆ ์ž๋ฆฌ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์ง‘ํ•ฉ์€ ์œ„์น˜ ์ธ์ˆ˜ ์šฐ์„ ์ด๋ฉฐ ์ตœ์‹  VB.NET์˜ ์ž์œ  ํ˜ผํ•ฉ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋‚˜ ๊ฒŒ์ž„ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

1. ๊ฐ€์šด๋ฐ Optional ์ƒ๋žต

# Encode๋Š” x, y=2, z=3์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. z:=9๋ฅผ ๋จผ์ €, x:=1์„ ๋‚˜์ค‘์— ์ œ๊ณตํ•˜๋ฉฐ y๋Š” 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ณ„์‚ฐ์€ 1*100+2*10+9=129์ž…๋‹ˆ๋‹ค. Encode(1,2,9) ๋ฐ Encode(1,z:=9)์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Option Explicit On
Function Encode(ByVal x, Optional ByVal y=2, Optional ByVal z=3) As Integer
    Return x*100 + y*10 + z
End Function

Sub Main()
    Dim encoded = Encode(z:=9, x:=1)
    Return encoded
End Sub

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

Encode๋Š” x, y=2, z=3์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. z:=9๋ฅผ ๋จผ์ €, x:=1์„ ๋‚˜์ค‘์— ์ œ๊ณตํ•˜๋ฉฐ y๋Š” 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ณ„์‚ฐ์€ 1100+210+9=129์ž…๋‹ˆ๋‹ค. Encode(1,2,9) ๋ฐ Encode(1,z:=9)์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2. ์˜ฌ๋ฐ”๋ฅธ ๋ณ€์ˆ˜์— ByRef ์“ฐ๊ธฐ

# Change๋Š” ByRef left์™€ right๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. right:=a๋Š” a=1์„ right์—, left:=b๋Š” b=2๋ฅผ left์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. left์— 10, right์— 20์„ ๋”ํ•œ ๋’ค b=12, a=21์„ ๋‹ค์‹œ ์”๋‹ˆ๋‹ค. Main์€ "21:12"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. := ์™ผ์ชฝ์€ ๋งค๊ฐœ๋ณ€์ˆ˜์ด๊ณ  ์˜ค๋ฅธ์ชฝ์€ ํ˜ธ์ถœ์ž ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
Option Explicit On
Sub Change(ByRef left, ByRef right)
    left += 10
    right += 20
End Sub

Sub Main()
    Dim a = 1
    Dim b = 2
    Change(right:=a, left:=b)
    Return CStr(a) & ":" & CStr(b)
End Sub

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

Change๋Š” ByRef left์™€ right๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. right:=a๋Š” a=1์„ right์—, left:=b๋Š” b=2๋ฅผ left์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. left์— 10, right์— 20์„ ๋”ํ•œ ๋’ค b=12, a=21์„ ๋‹ค์‹œ ์”๋‹ˆ๋‹ค. Main์€ "21:12"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. := ์™ผ์ชฝ์€ ๋งค๊ฐœ๋ณ€์ˆ˜์ด๊ณ  ์˜ค๋ฅธ์ชฝ์€ ํ˜ธ์ถœ์ž ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

3. ๋„ค์ดํ‹ฐ๋ธŒ ๋ชฉ๋ก ์กฐ์ž‘

# List()๊ฐ€ ๋ชฉ๋ก์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. Add(value:=10)์€ ๋ฐ˜ํ™˜๊ฐ’ ์—†์ด 10์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Insert(value:=20,index:=0)์€ ์ธ๋ฑ์Šค 0์— 20์„ ๋„ฃ๊ณ  10์„ ์ธ๋ฑ์Šค 1๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค. Item(index:=...)์€ ์š”์†Œ๋ฅผ, Count()๋Š” 2๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Main ๊ฒฐ๊ณผ๋Š” "20:10:2"์ž…๋‹ˆ๋‹ค. UO.Name(...)๋„ ๊ฐ™์€ ๊ทœ์น™์„ ์“ฐ๋ฉฐ ๊ฐ ๋ช…๋ น์˜ ๋“ฑ๋ก ์ด๋ฆ„๊ณผ ๋ฐ˜ํ™˜ ๊ณ„์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
Option Explicit On
Sub Main()
    Dim items = List()
    items.Add(value:=10)
    items.Insert(value:=20, index:=0)
    Dim first = items.Item(index:=0)
    Dim second = items.Item(index:=1)
    Return CStr(first) & ":" & CStr(second) & ":" & CStr(items.Count())
End Sub

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

List()๊ฐ€ ๋ชฉ๋ก์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. Add(value:=10)์€ ๋ฐ˜ํ™˜๊ฐ’ ์—†์ด 10์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Insert(value:=20,index:=0)์€ ์ธ๋ฑ์Šค 0์— 20์„ ๋„ฃ๊ณ  10์„ ์ธ๋ฑ์Šค 1๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค. Item(index:=...)์€ ์š”์†Œ๋ฅผ, Count()๋Š” 2๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Main ๊ฒฐ๊ณผ๋Š” "20:10:2"์ž…๋‹ˆ๋‹ค. UO.Name(...)๋„ ๊ฐ™์€ ๊ทœ์น™์„ ์“ฐ๋ฉฐ ๊ฐ ๋ช…๋ น์˜ ๋“ฑ๋ก ์ด๋ฆ„๊ณผ ๋ฐ˜ํ™˜ ๊ณ„์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.


en ยท ru ยท uk ยท fr ยท de ยท it ยท es ยท zh-tw ยท ja ยท ko

Basic