Scope(์ค์ฝฅ)
Scope์ ์ฝ๋์ ๋ฒ์๋ฅผ ๋งํ๋ค.
์ฝ๋๋ ์ ๊ทผํ๊ฑฐ๋ ์ ์ฉ๋๋ ๋ฒ์๊ฐ ์กด์ฌํ๋ค.
Scope(์ค์ฝฅ)์
Global Scope๊ณผ Local Scope
๋ ๊ฐ์ง๋ก ๋ถ๋ฅ๋๋ค.
๋ถ๋ฅ ๊ธฐ์ค์ ๋ฐ๋ก ์ค๊ดํธ({ })์ด๋ค.
{ } ๊ฐ์ฅ ๋ฐ์ Global Scope,
{ } ์์ Local Scope์ด๋ค.
์๋ ์์๋ก
Global Scope๊ณผ Local Scope์ ๊ตฌ๋ถํด ๋ณด์.
๊ธ๋ก๋ฒ ์ค์ฝฅ(Global Scope)์ ์ ์ธ๋ ์์๋ fubao์ ruiHuiBao์ด๋ค.
๋นจ๊ฐ์์ผ๋ก ํ์ํด ๋์ ๋ถ๋ถ์ด ๋ฐ๋ก ๋ก์ปฌ ์ค์ฝฅ(Local Scope)์ด๋ค.
์ ์์์ ๊ฐ์ด
๋ก์ปฌ ์ค์ฝฅ ์์ ํ์ ์ค์ฝํ๋ก ๋ก์ปฌ ์ค์ฝฅ์ด ๋ ์กด์ฌํ ์ ์๋ค.
๐ก์ฃผ์!๐ก
๊ฐ์ ์ค์ฝฅ์์๋ ๊ฐ์ ์์๋ฅผ ๋ ์ ์ธํ ์ ์๋ค.
๋ค๋ฅธ ์ค์ฝฅ์์๋ ๊ฐ์ ์ด๋ฆ์ ๋ณ์๋ ์์๋ฅผ ์ ์ธํ ์ ์๋ค.
์ด๊ฒ ๋ฌด์จ ๋ง์ด๋?!๐ฒ
๋นจ๊ฐ์์ผ๋ก ํ์ํ ๋ก์ปฌ ์ค์ฝฅ์ ์ ์ธํ ๊ธ๋ก๋ฒ ์ค์ฝฅ์
๋ค์ ํ ๋ฒ fubao๋ผ๋ ์์๋ฅผ ์ ์ธํ ์ ์๋ค๋ ๋ป์ด๋ค.
๋ง์ฝ, ์์์ fubao ์์๋ฅผ ์ ์ธํ๊ณ
์๋์์ ๋ fubao๋ฅผ ์ ์ธํ๊ฒ ๋๋ค๋ฉด Error๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
Scope์ 5๊ฐ์ง ๊ท์น
1. ๊ฐ์ ์ค์ฝฅ์์ ์ ์ธ๋ ๋ณ์์ ์์๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
2. ๊ฐ์ ์ค์ฝฅ ์์์๋ ์ด์ ์ ์ ์ธ๋ ๋ณ์์ ์์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
3. ํ์ ์ค์ฝฅ์์๋ ์์ ์ค์ฝฅ์ ์ ์ธ๋ ๋ณ์, ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
4. ์์ ์ค์ฝฅ์์๋ ํ์ ์ค์ฝฅ์ ์ ์ธ๋ ๋ณ์, ์์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค.
5. ๋ค๋ฅธ ์ค์ฝฅ์์ ๊ฐ์ ์ด๋ฆ์ ๋ณ์, ์์๋ฅผ ์ ์ธํ๋ฉด ๊ฐ์ฅ ๊ฐ๊น์ด ์ค์ฝฅ์ ์ ์ธ๋ ๊ฐ์ ๋ฐ๋ฅธ๋ค.
<์์ >
์๋ฅด๋ฐ์ดํธ๋ฅผ ํด์ ์๊ธ์ ๋ฐ๋๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค.
<ํ์ด>
hours(์ผํ ์๊ฐ) = 50์๊ฐ
payPerHour(์๊ธ) = 10000
salary(๋ฐ์ ๋) = 0 (์ผ๋จ, 0์ผ๋ก ์ ์ธ)
40์๊ฐ ์ด์์ ๊ทผ๋ฌดํ์ ๊ฒฝ์ฐ,
์ถ๊ฐ๋ ์๊ฐ์ 2๋ฐฐ๋ก ์ค๋ค๊ณ ํด๋ด
์๋ค.
extraHours(์ถ๊ฐ๋ก ์ผํ ์๊ฐ) = hours(์ผํ ์๊ฐ) - 40์๊ฐ
salary(๋ฐ์ ๋) += ์ถ๊ฐ๋ก ์ผํ ์๊ฐ X ์๊ธ X 2
→ ๋ฐ์ ๋์ ์ถ๊ฐ ๊ทผ๋ฌด ์๋น์ ๋ํด์ค.
(์ฆ, 50 - 40 = 10,
10 X 10,000 X 2 = 200,000 )
hours(์ผํ ์๊ฐ) -= ์ถ๊ฐ๋ก ์ผํ ์๊ฐ
→ ์ผํ ์๊ฐ์์ ์ถ๊ฐ๋ก ์ผํ ์๊ฐ์ ๋บ ๊ฒ.
(์ฆ, 50 - 10 = 40์๊ฐ)
salary(๋ฐ์ ๋) += hours(์ผํ ์๊ฐ) X payPerHour(์๊ธ)
→ ์์์ ๋ด๋ ค์จ salary(200,000) + (40 X 10,000)
= 600,000
'Swift > ๊ธฐ๋ณธ ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Swift - function (0) | 2024.02.22 |
---|---|
Swift - switch(์ค์์น) (0) | 2024.02.21 |
Swift - Flow Control (0) | 2024.02.21 |
Swift - boolean(๋ถ๋ฆฐ) (0) | 2024.02.20 |
Swift - Tuple(ํํ) (0) | 2024.02.20 |