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

AS

ClassicUO โ€ข Basic

AS๋Š” ์Šค์นผ๋ผ ๋ณ€์ˆ˜์˜ ๋ณ€ํ™˜ ๊ทœ์น™์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๊ฐ’ ์ข…๋ฅ˜๋Š” Integer, Decimal, String, Array, Object, Unit(๊ฐ’ ์—†์Œ)์ž…๋‹ˆ๋‹ค. Boolean์€ Integer 1/0์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด Basic์˜ ๋ณ„์นญ์€ VB.NET์—์„œ ๊ฐ™์€ ์ด๋ฆ„์„ ์“ฐ๋Š” ํ˜•์‹์˜ ์ €์žฅ ํฌ๊ธฐ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

VAR name AS type [= value]
DIM name AS type [= value]

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

  • name โ€” ์„ ์–ธํ•  ๋ณ€์ˆ˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ฝ์œผ๋ฉด ํ˜„์žฌ ๊ฐ’์„ ์–ป์œผ๋ฉฐ ์ดํ›„์˜ ๋ชจ๋“  ๋Œ€์ž…์—๋„ AS ๋ณ€ํ™˜์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • type โ€” Integer, Long, Short, Byte: ๋ถ€ํ˜ธ ์žˆ๋Š” 32๋น„ํŠธ ์ •์ˆ˜, ๋ฒ”์œ„ -2147483648โ€ฆ2147483647์ž…๋‹ˆ๋‹ค. Short์™€ Byte๋Š” ๋ฒ”์œ„๋ฅผ ์ค„์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Double, Single, Decimal: ๋‚ด๋ถ€ ์ด๋ฆ„์ด Decimal์ธ 64๋น„ํŠธ ์ด์ง„ ๋ถ€๋™์†Œ์ˆ˜์ ์ด๋ฉฐ ์ •ํ™•ํ•œ ์‹ญ์ง„ ์—ฐ์‚ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค. String: ๋ฌธ์ž์—ด. Boolean, Bool: Integer 1/0. Variant, Object: ์ž…๋ ฅ ๊ฐ’ ์ข…๋ฅ˜๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ๋ฐ˜๋“œ์‹œ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค์ผ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํ˜•์‹ ์ด๋ฆ„์˜ ๋Œ€์†Œ๋ฌธ์ž๋Š” ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • value โ€” ์„ ํƒ์  ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋ณ€์ˆ˜ ๋˜๋Š” ํ•จ์ˆ˜ ๊ฒฐ๊ณผ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. AS๋Š” ์„ ์–ธ ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค. ์‹์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด CInt(value), CDbl(value), CStr(value), CBool(value)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

AS ์ž์ฒด๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์ฝ์œผ๋ฉด ์ €์žฅ๋œ ์ข…๋ฅ˜์™€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ ์ˆซ์ž๋Š” TRUE=1, FALSE=0์ž…๋‹ˆ๋‹ค. ๊ฐœ์ˆ˜ 2๋Š” 0์ด ์•„๋‹ˆ์ง€๋งŒ 2=TRUE๋Š” ๊ฑฐ์ง“์ž…๋‹ˆ๋‹ค. ์•„์ดํ…œ ์กด์žฌ ์—ฌ๋ถ€๋Š” count<>0 ๋˜๋Š” CBool(count)๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘

  • ์ดˆ๊ธฐ๊ฐ’์ด ์—†๋Š” ํ˜•์‹ ์ง€์ • VAR๋Š” ์ •์ˆ˜/Boolean์— 0, Double/Single/Decimal์— ๋ถ€๋™์†Œ์ˆ˜์  0, String์— ๋นˆ ๋ฌธ์ž์—ด์„ ์ค๋‹ˆ๋‹ค. ํ˜•์‹ ์—†๋Š” VAR ๋ฐ VAR AS Variant/Object๋Š” Unit์ž…๋‹ˆ๋‹ค. ์Šค์นผ๋ผ DIM์€ String์— ๋นˆ ๋ฌธ์ž์—ด, ๋‚˜๋จธ์ง€์— 0์„ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋„ฃ์Šต๋‹ˆ๋‹ค. Unit์€ AS๋ฅผ ํ†ตํ•ด ๋Œ€์ž…ํ•ด๋„ Unit์ž…๋‹ˆ๋‹ค.
  • AS Integer๋Š” ๋ฒ”์œ„ ์•ˆ์˜ ์†Œ์ˆ˜ ๋ถ€๋ถ„์„ 0 ๋ฐฉํ–ฅ์œผ๋กœ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. CInt/CLng๋Š” ๋ฐ˜์˜ฌ๋ฆผํ•˜๋ฉฐ ์ •ํ™•ํžˆ ์ ˆ๋ฐ˜์ด๋ฉด 0์—์„œ ๋ฉ€์–ด์ง‘๋‹ˆ๋‹ค. 2.6์€ CInt์—์„œ 3์ด์ง€๋งŒ AS Integer์—์„œ๋Š” 2์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜ ๋ฌธ์ž์—ด ์ „์ฒด๋Š” ์‹ญ์ง„ ์ •์ˆ˜ ๋˜๋Š” 0x 16์ง„์ˆ˜์—ฌ์•ผ ํ•˜๋ฏ€๋กœ "2.6"์€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณ€ํ™˜ ์ „์— ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  • AS Boolean์€ ์›๋ž˜ ๊ฐ’์„ ์ˆซ์ž 0๊ณผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. 0์ด ์•„๋‹Œ ์ˆซ์ž๋Š” 1, 0์€ 0์ž…๋‹ˆ๋‹ค. ๋‹จ์–ด๋ฅผ ํ•ด์„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ์ž์—ด "false"๋„ 1์ด ๋ฉ๋‹ˆ๋‹ค. CBool์€ ๋จผ์ € ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ˆซ์ž/๋…ผ๋ฆฌ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์„ ์˜ˆ์ƒ ๋‹จ์–ด์™€ ๋ช…์‹œ์ ์œผ๋กœ ๋น„๊ตํ•˜์„ธ์š”.
  • AS String์€ ์—”์ง„์˜ ๋ฌธ์ž์—ด ํ‘œํ˜„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. AS Double/Single/Decimal์€ ์†Œ์ˆ˜์ ์ด ์žˆ๋Š” ์ˆซ์ž ๋ฌธ์ž์—ด์„ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ์ˆซ์ž AS๋Š” Array๋ฅผ 0์œผ๋กœ ๋ฐ”๊พธ์ง€๋งŒ Object์™€ ์ž˜๋ชป๋œ ์ˆซ์ž ๋ฌธ์ž์—ด์—๋Š” TRY/CATCH๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ƒ…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด CInt/CLng/CDbl/CSng/CBool์€ ๋А์Šจํ•˜๊ฒŒ ์ฝ์–ด ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด, Array, Object, Unit์„ ๋จผ์ € 0์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ณ€ํ™˜์„ ๋ฏฟ๊ธฐ ์ „์— IsNumeric(value)๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  • ์„ ์–ธ์€ ์ดˆ๊ธฐ์‹์„ ๊ณ„์‚ฐํ•˜๊ณ  AS ๋ณ€ํ™˜์„ ์ ์šฉํ•œ ๋’ค ๊ฒฐ๊ณผ์™€ ํ˜•์‹ ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๋Œ€์ž…๋งˆ๋‹ค ๋ณ€ํ™˜์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋™์†Œ์ˆ˜์ ์€ ๊ทผ์‚ฟ๊ฐ’์ด๋ฉฐ ์ •ํ™•ํ•œ ์‹ญ์ง„ ๊ธˆ์•ก ๊ณ„์‚ฐ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ”์œ„๋Š” VAR / DIM, ์ด๋ฆ„ ๋ณดํ˜ธ๋Š” CONST๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • As ๋’ค์—๋Š” ์„ ์–ธ๋œ Structure ์ด๋ฆ„๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™” ์‹์ด ์—†๋Š” ํ•ด๋‹น ํ˜•์‹์˜ VAR์™€ DIM์€ ๊ธฐ๋ณธ ํ•„๋“œ ๊ฐ’์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„ ์–ธ ํ˜•์‹๋งŒ ํ˜ธํ™˜๋˜๋ฉฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์กฐ ํ˜•์‹ ๊ฐ„ ๋ณ€ํ™˜์€ ์—†์Šต๋‹ˆ๋‹ค. ์ค‘์ฒฉ ๋ณต์‚ฌ์™€ ์ฐธ์กฐ ํ•„๋“œ๋Š” Structure / New๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ์ œ

1. ๋Œ€์ž… ๋ณ€ํ™˜๊ณผ ๋ฐ˜์˜ฌ๋ฆผ

# source=2.6์€ ๋ถ€๋™์†Œ์ˆ˜์ ์ž…๋‹ˆ๋‹ค. whole AS Integer๋Š” 2๋ฅผ ์ €์žฅํ•˜๊ณ  CInt(source)๋Š” rounded์— 3์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Main์€ 2*10+3=23์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋‘ ๋ณ€ํ™˜์„ ํ•จ๊ป˜ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
Option Explicit On
SUB Main()
    VAR source = 2.6
    VAR whole AS Integer = source
    VAR rounded = CInt(source)
    RETURN whole * 10 + rounded
END SUB

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

source=2.6์€ ๋ถ€๋™์†Œ์ˆ˜์ ์ž…๋‹ˆ๋‹ค. whole AS Integer๋Š” 2๋ฅผ ์ €์žฅํ•˜๊ณ  CInt(source)๋Š” rounded์— 3์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Main์€ 2*10+3=23์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋‘ ๋ณ€ํ™˜์„ ํ•จ๊ป˜ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

2. ๊ฐœ์ˆ˜์™€ ๋…ผ๋ฆฌ ๊ฐ’์˜ ์ฐจ์ด

# count=2๋Š” ์•„์ดํ…œ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. hasItems AS Boolean์€ 1์ด ๋ฉ๋‹ˆ๋‹ค. TRUE๋Š” ์ •ํ™•ํžˆ 1์ด๋ฏ€๋กœ count=TRUE๋Š” ๊ฑฐ์ง“์ด๊ณ  count<>0์€ ์ฐธ์ž…๋‹ˆ๋‹ค. Main์˜ hasItems=1์€ ์•„์ดํ…œ์ด ์žˆ๋‹ค๋Š” ๋œป์ด์ง€ ๊ฐœ์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ผ๋Š” ๋œป์€ ์•„๋‹™๋‹ˆ๋‹ค.
Option Explicit On
SUB Main()
    VAR count = 2
    VAR hasItems AS Boolean = count
    IF count = TRUE THEN
        RETURN -1
    END IF
    IF count <> 0 THEN
        RETURN hasItems
    END IF
    RETURN FALSE
END SUB

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

count=2๋Š” ์•„์ดํ…œ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. hasItems AS Boolean์€ 1์ด ๋ฉ๋‹ˆ๋‹ค. TRUE๋Š” ์ •ํ™•ํžˆ 1์ด๋ฏ€๋กœ count=TRUE๋Š” ๊ฑฐ์ง“์ด๊ณ  count<>0์€ ์ฐธ์ž…๋‹ˆ๋‹ค. Main์˜ hasItems=1์€ ์•„์ดํ…œ์ด ์žˆ๋‹ค๋Š” ๋œป์ด์ง€ ๊ฐœ์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ผ๋Š” ๋œป์€ ์•„๋‹™๋‹ˆ๋‹ค.

3. Variant๋Š” ๊ฐ’ ์ข…๋ฅ˜๋ฅผ ์œ ์ง€

# value AS Variant๋Š” ์ฒ˜์Œ Integer 7, ๋‹ค์Œ String "ore"๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. text AS String์€ ๋น„์–ด ์žˆ๋Š” ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. CStr(12)๋Š” ๋ฌธ์ž์—ด "12"๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•˜๋ฉด Main์ด ๋ฐ˜ํ™˜ํ•  "ore12"๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Variant๋Š” ๊ฐ’ ์ข…๋ฅ˜ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Option Explicit On
SUB Main()
    VAR value AS Variant = 7
    value = "ore"
    VAR text AS String
    text = value + CStr(12)
    RETURN text
END SUB

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

value AS Variant๋Š” ์ฒ˜์Œ Integer 7, ๋‹ค์Œ String "ore"๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. text AS String์€ ๋น„์–ด ์žˆ๋Š” ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. CStr(12)๋Š” ๋ฌธ์ž์—ด "12"๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•˜๋ฉด Main์ด ๋ฐ˜ํ™˜ํ•  "ore12"๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Variant๋Š” ๊ฐ’ ์ข…๋ฅ˜ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.


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

Basic