Swift/๊ธฐ๋ณธ ๋ฌธ๋ฒ•

Swift - Scope(์Šค์ฝฅ)

yeggrrr๐Ÿผ 2024. 2. 20. 12:53

 
 

 



 

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

 
 
 
 

 

 



 
 
 
  
 
 
 

728x90

'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