ν‹°μŠ€ν† λ¦¬ λ·°

μ•ˆλ…•ν•˜μ„Έμš”?

λ„ˆκ΅¬λ¦¬μž…λ‹ˆλ‹€~~γ…Žγ…Ž

 

μ˜€λŠ˜μ€ μ €λ²ˆ ν¬μŠ€νŒ…μ— 이어 ν”„λ‘œν† μ½œμ˜ λ©”μ„œλ“œ μš”κ΅¬μ‚¬ν•­μ— λŒ€ν•΄

μ•Œμ•„λ³ΌκΉŒ ν•©λ‹ˆλ‹€γ…Žγ…Ž

 

 

λ©”μ„œλ“œ μš”κ΅¬μ‚¬ν•­


μ €λ²ˆ ν¬μŠ€νŒ…μ—μ„œ ν”„λ‘œν† μ½œμ„ μ •μ˜ν•  λ•Œ κΈ°λŠ₯ κ΅¬ν˜„μ€

μ•ˆν•œλ‹€κ³  ν–ˆμ—ˆμ£ ?

 

κ·Έλž˜μ„œ ν”„λ‘œν† μ½œ μ •μ˜μ—μ„œ λ©”μ†Œλ“œλŠ” μ€‘κ΄„ν˜Έλ‚˜ λ°”λ””κ°€ μ—†μŠ΅λ‹ˆλ‹€!!!

그리고 λ§Œμ•½ νƒ€μž… λ©”μ†Œλ“œλ₯Ό μš”κ΅¬μ‚¬ν•­μœΌλ‘œ λ„£μ„κ²½μš°

func μ•žμ— static만 올렀주면 λ©λ‹ˆλ‹€!γ…Žγ…Ž

 

그럼 κ°„λ‹¨νžˆ μ •μ˜λ§Œ ν•΄λ³Όκ²Œμš”~~

protocol SomeProtocol {
	func someMethod()
    	static func someTypeMethod()
}

μ •μ˜λŠ” μ°Έ 쉽죠?γ…Žγ…Ž

 

μ—¬κΈ°μ„œ ν•˜λ‚˜ 짚고 λ„˜μ–΄κ°€μ•Όν• κ²Œ μžˆλŠ”λ°μš”

μš°λ¦¬κ°€ ν•¨μˆ˜μ—μ„œ λ§€κ°œλ³€μˆ˜κ°€μžˆλŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•  수 있고 이 λ³€μˆ˜μ— μ΄ˆκΈ°κ°’μ„ 쀄 수 μžˆμž–μ•„μš”?

ν•˜μ§€λ§Œ ν”„λ‘œν† μ½œμ€ 초기 섀정을 ν•  수 μ—†λŠ”λ° 

ν”„λ‘œν† μ½œ λ‚΄μ˜ λ©”μ†Œλ“œμ— μ΄ˆκΈ°κ°’μ„ κ°€μ§€λŠ” λ§€κ°œλ³€μˆ˜ μš”κ΅¬μ‚¬ν•­μ„ μ€€λ‹€λ©΄ μ–΄λ–»κ²Œ λ κΉŒμš”?(ꢁ금ꢁ금..)

ν”„λ‘œν† μ½œμ—μ„œ λ©”μ†Œλ“œλŠ” λ§€κ°œλ³€μˆ˜ μ΄ˆκΈ°κ°’μ„ 쀄 수 μ—†λ‹€λŠ” μ—λŸ¬κ°€ λ‚˜μ˜€λ„€μš”!!

μ΄ˆκΈ°κ°’μ„ μ§€μš°λ©΄ μ •!!상!!μ½”!!λ“œ!!

 

(편.μ•ˆ~)

 

μ΄μ–΄μ„œ ν”„λ‘œν† μ½œ λ©”μ†Œλ“œλ₯Ό ν•œλ²ˆ μ‚¬μš©ν•΄λ³΄λ €κ³ ν•˜λŠ”λ°μš”

μ‚¬κ°ν˜•μ˜ 넓이λ₯Ό 좜λ ₯ν•΄μ£ΌλŠ” λ©”μ†Œλ“œλ₯Ό μ£Όλ €κ³  ν•©λ‹ˆλ‹€!

μ½”λ“œλ‘œ ν•¨κ»˜ λ³΄μ‹œμ£ ~

protocol RectangleArea {
    func getArea() -> Int
}


struct Rectangle: RectangleArea {
    var width: Int
    var height: Int
    func getArea() -> Int {
        return width*height
    }
}

let rectangle1 = Rectangle(width: 10, height: 10)
print(rectangle1.getArea()) // 100

κ°„λ‹¨νžˆ λ§Œλ“€μ–΄λ΄€λŠ”λ°μš”~

 

λ¨Όμ € RectangleAreaν”„λ‘œν† μ½œμ„ μ •μ˜ν•˜κ³  getArea()λ©”μ†Œλ“œμ˜ μš”κ΅¬μ‚¬ν•­μ„ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€!

그리고 Rectangleμ΄λΌλŠ” ꡬ쑰체λ₯Ό μ •μ˜ν•˜κ³  RectangleArea의 ν”„λ‘œν† μ½œμ„ μ±„νƒν•˜κ³  μ€€μˆ˜ν•˜λ„λ‘ ν•˜μ˜€κ΅¬μ—¬

μ€€μˆ˜ν•œ ν›„μ—λŠ” λ‚΄λΆ€μ˜ ν”„λ‘œνΌν‹°λ₯Ό μ΄μš©ν•˜μ—¬ 넓이λ₯Ό 좜λ ₯ν•˜λ„λ‘ μ½”λ“œλ₯Ό μž‘μ„±ν–ˆμ–΄μš”!

κ·Έλ‹€μŒ 객체λ₯Ό μ •μ˜ν•œ ν›„ ν•΄λ‹Ή λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ 넓이λ₯Ό κ΅¬ν•˜λ©΄

κ²°κ³ΌκΉŒμ§€ μ™„λ²½!!ν•˜μ£ ?γ…Žγ…Ž

 

 

λ©”μ†Œλ“œ μš”κ΅¬μ‚¬ν•­ λ³€κ²½


μ΄μ–΄μ„œ λ©”μ†Œλ“œ μš”κ΅¬μ‚¬ν•­ 변경에 λŒ€ν•΄ μ•Œμ•„λ³Όκ²Œμš”!!

 

μ΄λ¦„λ§Œ λ“€μœΌλ©΄ μ–΄λ ΅μ§€λ§Œ 

μ•„μ‹œλŠ” 뢄듀은 μ•„μ‹œκ² μ§€λ§Œ~~ λ©”μ†Œλ“œκ°€ κ°’νƒ€μž…μΈ structλ‚˜ enumμ—μ„œ

λ‚΄λΆ€ ν”„λ‘œνΌν‹°μ˜ 값을 λ°”κΎΈλ €λ©΄ λ©”μ†Œλ“œμ•žμ— mutating을 λΆ™μ—¬μ£Όμ—¬μ•Ό κ°€λŠ₯ν•©λ‹ˆλ‹€!!

 

ν”„λ‘œν† μ½œμ—μ„œλ„ λ§ˆμ°¬κ°€μ§€μΈλ°μš”!!

μ½”λ“œλ₯Ό λ°”λ‘œ ν™•μΈν•΄λ³ΌκΉŒμš”?

 

protocol Togglable {
    mutating func toggle()
}

enum OnOffSwitch: Togglable {
    case off, on
    mutating func toggle() {
        switch self {
        case .off:
            self = .on
        case .on:
            self = .off
        }
    }
}
var lightSwitch = OnOffSwitch.off
lightSwitch.toggle()
// lightSwitch .on

Toggleable ν”„λ‘œν† μ½œμ„ μ •μ˜ν•˜κ³  μŠ€μœ„μΉ˜λ₯Ό on, offν•˜λŠ” κΈ°λŠ₯을 ν•˜λŠ” μ½”λ“œμΈλ°μš”

λ§Œμ•½ mutating이 μ—†λ‹€λ©΄ μ—λŸ¬κ°€ λ‚˜κ² μ£ ?

κΆκΈˆν•˜λ‹ˆκΉŒ ν…ŒμŠ€νŠΈ ν•΄λ³Όκ²Œμš”~

 

μ—­μ‹œλ‚˜ γ…Žγ…Ž

immutableν•˜λ‹€κ³  ν•˜λ„€μš”~~

 

μ—¬κΈ°μ„œ ν•˜λ‚˜ 더 κΆκΈˆν•œ 점이 μƒκ²ΌλŠ”λ° mutating을

enum ν•¨μˆ˜μ— 뢙이면 μ–΄λ–»κ²Œ λ κΉŒμš”?

 

이거 μ—­μ‹œ ν”„λ‘œν† μ½œμ„ μ€€μˆ˜ν•˜λΌλŠ” μ—λŸ¬λ„€μš”!

μ—­μ‹œ ν”„λ‘œν† μ½œμ€ κ·œμΉ™μ„ λ§Œλ“œλŠ” κΈ°λŠ₯μ΄λ‹€λ‹ˆ

κΉκΉν•˜λ„€μš”!1

 

 

 

 

 

 

 

μ˜€λŠ˜μ€ μ—¬κΈ°μ„œ λ§ˆλ¬΄λ¦¬ν• κ²Œμš”!!

ν˜Ήμ‹œ μˆ˜μ •μ‚¬ν•­ 있으면 μ•Œλ €μ£Όμ‹œλ©΄ λ„ˆ~~무 κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€γ…Žγ…Ž

κΈ€ μ½μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

 

λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
Β«   2026/03   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
κΈ€ 보관함