API Basic OptionExplicit ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Option Explicit
ClassicUO โข Basic
์คํฌ๋ฆฝํธ ์คํ ์ ์ ๋ณ์ ์ ์ธ์ ์๊ตฌํฉ๋๋ค. ์ด ์์ง Basic ์ธ์ด์ ํ์ผ ์ง์๋ฌธ์ด๋ฉฐ UO ๋ช ๋ น์ด๋ ํจ์ ํธ์ถ์ด ์๋๋๋ค.
์ ํํ ๊ตฌ๋ฌธ
Option Explicit
Option Explicit On
Option Explicit Off
๋งค๊ฐ๋ณ์
On / Offโ On์ ์๊ฒฉํ ์ ์ธ ๊ฒ์ฌ๋ฅผ ์ผ๊ณ Off๋ ๋๋๋ค. Explicit ๋ค์ ์ต์ ์ด ์์ผ๋ฉด On์ ๋๋ค. ํ์ผ์ ์ง์๋ฌธ ์์ฒด๊ฐ ์์ผ๋ฉด ๊ธฐ์กด์ ๋น์๊ฒฉ ๋ชจ๋๋ฅผ ์ ์งํฉ๋๋ค. ๊ดํธ๋ ๋ฐ์ดํ๋ฅผ ๋ถ์ด์ง ๋ง์ธ์.
๋ฐํ๊ฐ
๊ฐ์ด ์์ต๋๋ค. ์ง์๋ฌธ์ ํํ์์ด ์๋๋ฉฐ TRUE/FALSE, ์ซ์, ID๋ฅผ ๋ฐํํ์ง ์์ต๋๋ค. ์์ ์ RETURN์ Main ๋๋ Enough์ ์ํ๋ฉฐ Option Explicit์ ๋ฐํ์ด ์๋๋๋ค.
๋์
- ๋ณ์, ์์, ํ๋ก์์ ์์ ํ ๋ฒ๋ง ์์ฑํ์ธ์. ์์๋ ๋น ์ค๊ณผ ์ฃผ์์ ๋ ์ ์์ต๋๋ค. ์ค๋ณต๋๊ฑฐ๋ ๋ค๋ฆ์ ์ง์๋ฌธ์ SC013 ์ค๋ฅ์ด๋ฉฐ, ๋์ค์ Off๋ก ์ ํํ๋ ๊ฒฝ์ฐ๋ ๊ฐ์ต๋๋ค.
- On์์๋ ์ ์ธ๋์ง ์์ ๋ณ์ ์ฝ๊ธฐ๋ ๋์ ์ ์์ค ์์น๊ฐ ํฌํจ๋ SC006์ด ๋ฐ์ํฉ๋๋ค. ๋ฐฐ์ด ์ด๋ฆ, FOR ์นด์ดํฐ, ๋ฉ์๋ ํธ์ถ์ ๋ฐ๋ ๊ฐ์ฒด๋ ๊ฒ์ฌํฉ๋๋ค. VAR/DIM/CONST, ๋งค๊ฐ๋ณ์, ์ด๋ฆ ์๋ CATCH ๋ณ์๋ก ์ด๋ฆ์ ์ ์ธํฉ๋๋ค. FOR VAR๋ ์นด์ดํฐ๋ฅผ ์ ์ธํฉ๋๋ค.
- ์ง์ญ ๋ณ์๋ ์ฌ์ฉ ์ ์ ์ ์ธํ์ธ์. ํ ํ๋ก์์ ์ ์ง์ญ ๋ณ์๊ฐ ๋ค๋ฅธ ํ๋ก์์ ์ ์ด๋ฆ์ ์ ์ธํ์ง๋ ์์ต๋๋ค. ์ ์ญ ์ ์ธ์ ํ๋ก์์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฆ ๊ฒ์ฌ์ด๋ฉฐ ๋ชจ๋ ๋ถ๊ธฐ์์ ์ด๊ธฐํ๋จ์ ์ฆ๋ช ํ๋ ๊ธฐ๋ฅ์ ์๋๋๋ค.
- ํ์๊ฐ ํ์ผ ์ ์ฒด๋ฅผ ์ฝ๊ณ ๋ถ์๊ธฐ๊ฐ ์ ์ธ์ ํ์ธํ๋ฉฐ ์๊ฒฉํ ๊ฒ์ฌ ์ค๋ฅ๊ฐ ์์ผ๋ฉด ์ฒซ ๋ช ๋ น ์ ์ ์คํ์ ๊ฑฐ๋ถํฉ๋๋ค. ๋ค์ ๋ก๋ํ๋ฉด ์ด์ ์คํฌ๋ฆฝํธ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ํ์ผ์ ์ต์ ์ ์ ์ฉํฉ๋๋ค. Off์์๋ ๊ฒฝ๊ณ ๊ฐ ๋์ฌ ์ ์๊ณ ์์ง ์๋ ๊ฐ์ ์ฝ์ผ๋ฉด ์คํ ์ค ์คํจํ ์ ์์ต๋๋ค.
- ์ง์๋ฌธ ์์ฒด๋ ๊ฒ์ ๋์์ด๋ ํจํท ์ ์ก์ ํ์ง ์์ต๋๋ค. ์์ ํ VB.NET ํธํ์ฑ์ด๋ ๊ฒ์ ๋์์ ์กด์ฌ๋ฅผ ๋ณด์ฅํ์ง ์์ต๋๋ค.
์์
1. ๋์ ์ ์ ์ ์ธ
# On์ผ๋ก ๊ฒ์ฌ๋ฅผ ์ผญ๋๋ค. DIM์ด count๋ฅผ Integer๋ก ์ ์ธํ๋ฏ๋ก 5๋ฅผ ๋์
ํ ์ ์์ต๋๋ค. Main์ 5๋ฅผ ๋ฐํํฉ๋๋ค. count๋ฅผ ์ ์ธ๋์ง ์์ coutn์ผ๋ก ๋ฐ๊พธ๋ฉด SC006์ผ๋ก ์คํ์ด ์ฐจ๋จ๋ฉ๋๋ค.
Option Explicit On
SUB Main()
DIM count AS Integer
count = 5
RETURN count
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
On์ผ๋ก ๊ฒ์ฌ๋ฅผ ์ผญ๋๋ค. DIM์ด count๋ฅผ Integer๋ก ์ ์ธํ๋ฏ๋ก 5๋ฅผ ๋์ ํ ์ ์์ต๋๋ค. Main์ 5๋ฅผ ๋ฐํํฉ๋๋ค. count๋ฅผ ์ ์ธ๋์ง ์์ coutn์ผ๋ก ๋ฐ๊พธ๋ฉด SC006์ผ๋ก ์คํ์ด ์ฐจ๋จ๋ฉ๋๋ค.
2. ๋งค๊ฐ๋ณ์์ ์ ์ญ ์์
# ์ต์
์๋ต์ On์
๋๋ค. minimum์ ๊ฐ์ด 3์ธ ์ ์ญ ์์์
๋๋ค. amount๋ Enough์ ์ ์ธ๋ ๋งค๊ฐ๋ณ์์ด๋ฉฐ Main์ ๊ฐ์ ์ด๋ฆ ์ง์ญ ๋ณ์์๋ ๋ณ๊ฐ์
๋๋ค. Enough๋ 5 >= 3์ ๋น๊ตํ์ฌ TRUE, ์ฆ ์ซ์ 1์ ๋ฐํํฉ๋๋ค.
Option Explicit
CONST minimum = 3
FUNCTION Enough(amount)
RETURN amount >= minimum
END FUNCTION
SUB Main()
VAR amount = 5
RETURN Enough(amount)
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
์ต์ ์๋ต์ On์ ๋๋ค. minimum์ ๊ฐ์ด 3์ธ ์ ์ญ ์์์ ๋๋ค. amount๋ Enough์ ์ ์ธ๋ ๋งค๊ฐ๋ณ์์ด๋ฉฐ Main์ ๊ฐ์ ์ด๋ฆ ์ง์ญ ๋ณ์์๋ ๋ณ๊ฐ์ ๋๋ค. Enough๋ 5 >= 3์ ๋น๊ตํ์ฌ TRUE, ์ฆ ์ซ์ 1์ ๋ฐํํฉ๋๋ค.
3. ์ด์ ์คํฌ๋ฆฝํธ ์คํ
# Off์์๋ DIM ์์ด ๋์
์ผ๋ก legacyCounter๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. Main์ 7์ ๋ฐํํฉ๋๋ค. ์ด ํธํ์ฑ ์์ ์๋ ๊ฒฝ๊ณ ๊ฐ ๋จ์ ์ ์์ต๋๋ค. ์๊ฒฉํ ๊ฒ์ฌ๋ฅผ ํ๋ ค๋ฉด ๋ณ์๋ฅผ ์ ์ธํ๊ณ On์ ์ฌ์ฉํ์ธ์.
Option Explicit Off
SUB Main()
legacyCounter = 7
RETURN legacyCounter
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
Off์์๋ DIM ์์ด ๋์ ์ผ๋ก legacyCounter๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. Main์ 7์ ๋ฐํํฉ๋๋ค. ์ด ํธํ์ฑ ์์ ์๋ ๊ฒฝ๊ณ ๊ฐ ๋จ์ ์ ์์ต๋๋ค. ์๊ฒฉํ ๊ฒ์ฌ๋ฅผ ํ๋ ค๋ฉด ๋ณ์๋ฅผ ์ ์ธํ๊ณ On์ ์ฌ์ฉํ์ธ์.