iOS/Swift

[Swift] ์ ‘๊ทผ ์ œ์–ด

year.number 2022. 8. 5. 14:10

 

๐Ÿ’ก ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

 

๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™”์‹œ์ผœ ์ƒํƒœ์™€ ๋™์ž‘์„ ๊ฐ€์ง€๋Š” ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ๋ฌถ์–ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•์ด๋‹ค.

* ์ถ”์ƒํ™”: ๊ณตํ†ต์ ์ธ ์†์„ฑ์ด๋‚˜ ๊ธฐ๋Šฅ์„ ๋ฌถ์–ด ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ฒƒ (ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ์ผ)

 

์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ค‘์š”์‹œ ํ•˜์ง€๋งŒ, ๊ฐ์ฒด ์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์š”์‹œํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ œ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์„ค๊ณ„ํ•˜๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ํด๋ž˜์Šค์ด๋‹ค.

 

ํด๋ž˜์Šค์—๋Š” ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜(์•Œ๊ณ ๋ฆฌ์ฆ˜)๊ฐ€ ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ์ ์ด ํฐ ํŠน์ง•์ด๋‹ค.


๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฅ์ :

- ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ์œ ์šฉ์„ฑ

- ์œ ์ง€ ๋ฐ ๋ณด์ˆ˜์˜ ํšจ์œจ์„ฑ


์บก์Аํ™”

๋ฐ์ดํ„ฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„(ํด๋ž˜์Šค)๋กœ ๋ฌถ๋Š” ๊ฒƒ์œผ๋กœ,

์บก์Аํ™”๋ฅผ ์ดํ•ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ถˆํ•„์š”ํ•œ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋‹ค. (=์ •๋ณด ์€๋‹‰)

 


Swift์—์„œ์˜ ์ ‘๊ทผ ์ œ์–ด

์ ‘๊ทผ์ œ์–ด๋ž€ ์ •๋ณด ์€๋‹‰์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์œผ๋กœ, ์ฝ”๋“œ๋ผ๋ฆฌ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ๋•Œ ํŒŒ์ผ ๊ฐ„, ๋˜๋Š” ๋ชจ๋“ˆ๊ฐ„์— ์ ‘๊ทผ์„ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

๋ชจ๋“ˆ ์†Œ์ŠคํŒŒ์ผ
๋ฐฐํฌํ•  ์ฝ”๋“œ์˜ ๋ฌถ์Œ ๋‹จ์œ„ ํ•˜๋‚˜์˜ ์Šค์œ„ํ”„ํŠธ ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ
ํ”„๋ ˆ์ž„์›Œํฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜  

 


์ ‘๊ทผ ์ˆ˜์ค€ ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ์ œ์–ด ๊ตฌํ˜„

  • open (ํด๋ž˜์Šค์—์„œ๋งŒ ์‚ฌ์šฉ)
  • public 
  • internal (default)
  • fileprivate
  • private

* private ์ ‘๊ทผ ์ˆ˜์ค€์˜ ๊ฒฝ์šฐ ์ž์‹ ์„ ํ™•์žฅํ•˜๋Š” ์ต์Šคํ…์…˜ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ํŒŒ์ผ์— ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค


์ฝ๊ธฐ ์ „์šฉ ๊ตฌํ˜„

์„ค์ •์ž๋งŒ ๋” ๋‚ฎ์€ ์ ‘๊ทผ์ˆ˜์ค€์„ ๊ฐ–๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.

์ ‘๊ทผ์ˆ˜์ค€(set)

 

import Foundation

//์ ‘๊ทผ์ˆ˜์ค€(set)์œผ๋กœ ์„ค์ •์ž์˜ ์ ‘๊ทผ ์ˆ˜์ค€๋งŒ ๋” ๋‚ฎ๋„๋ก ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค
public struct SomeType {
    public private(set) var SetPrivate: Int = 120
}


var SomeInstance: SomeType = SomeType()
print(SomeInstance.SetPrivate)

 

 

 

๋Œ“๊ธ€์ˆ˜0