잡초의 일지

[Swift] Structure 구조체 본문

[코딩] 배우는것/Swift

[Swift] Structure 구조체

JabCho 2020. 7. 10. 14:37
728x90
반응형
SMALL

 Structure

관계가 있는 여러 데이터를 묶어서 표현.

 

Class Vs Structure

동작이 다르다. 

Structure : value type 값 타입 --> 복사해서 할당 - Stack 메모리

Class :  Reference type 참조 타입 --> 기존의 것 공유 - Heap 메모리

 

코드

struct , struct를 파라미터로 받는 func

import UIKit

struct Lecture {
    let name: String
    let tutorName: String
    let studentNum: Int
}

func printLectureName(from tutor: String, lectures: [Lecture]){
    var lectureName = ""

    for lecture in lectures {
        if tutor == lecture.tutorName{
            lectureName = lecture.name
        }
    }

//    let lecuteName = lectures       // 클로저 사용!
//                            .first { (lec) -> Bool in
//                                        return lec.name == tutor
//        }?.name ?? ""
    
    print("아 그 강사님 강의는요: \(lectureName)")
}

let lec1 = Lecture(name: "ios Basic", tutorName: "Jason", studentNum: 50)
let lec2 = Lecture(name: "D.S.", tutorName: "현춰리", studentNum: 80)
let lec3 = Lecture(name: "Communication", tutorName: "라이언", studentNum: 20)
let lectures = [lec1, lec2, lec3]

printLectureName(from: "라이언", lectures: lectures)

 

클로저를 이용한 연습

import UIKit

struct arr {
    let key: Int
    let name: String
}

let arr1 = arr(key: 1, name: "1번")
let arr2 = arr(key: 2, name: "2번")
let arr3 = arr(key: 3, name: "3번")
let arrs = [arr1, arr2, arr3]

func findName(from keyName:Int, arrs:[arr]){
    let num = arrs
        .first { (res) -> Bool in
            return res.key == keyName
        }?.name ?? ""
    
    print(num)
}

findName(from: 2, arrs: arrs)

 

728x90
반응형
LIST

'[코딩] 배우는것 > Swift' 카테고리의 다른 글

[Swift] Object | Structure | Data , Property , Method  (0) 2020.07.10
[Swift] Protocol 프로토콜  (0) 2020.07.10
[Swift] Closure 클로저  (0) 2020.07.09
[Swift] Collection : Set  (0) 2020.07.09
[Swift] Collection : Dictionary  (0) 2020.07.09
Comments