import Swift


struct Sample {

    var mutableProperty: Int = 100 // 가변 프로퍼티

    let immutableProperty: Int = 100 // 불변 프로퍼티

    

    static var typeProperty: Int = 100 // 타입 프로퍼티

    

    // 인스턴스 메서드

    func instanceMethod() {

        print("instance method")

    }

    

    // 타입 메서드

    static func typeMethod() {

        print("type method")

    }

}


// 가변 인스턴스

var mutable: Sample = Sample()


mutable.mutableProperty = 200

// mutable.immutableProperty = 200


// 불변 인스턴스

let immutable: Sample = Sample()


// immutable.mutableProperty = 200

// imuutable.immutablePropery = 200


// 타입 프로퍼티 및 메서드

Sample.typeProperty = 300

Sample.typeMethod() // type property


// mutable.typeProperty = 400

// mutable.typeMethod()


struct Student {

    var name: String = "unknown"

    var `class`: String = "Swift"

    

    static func selfIntroduce() {

        print ("학생타입입니다")

    }

    

    func selfIntroduce() {

        print("저는 \(self.class)반 \(name)입니다")

    }

}


Student.selfIntroduce() // 저는 swift반 real_name입니다



var real_name: Student = Student()

real_name.name = "real_name"

real_name.class = "swift"

real_name.selfIntroduce()


let jina: Student = Student()

// 불변 인스턴스이므로 프로퍼티 값 변경 불가

// 컴파일 오류 발생

//jina.name = "jina"

jina.selfIntroduce()


'Swift > 기초&문법' 카테고리의 다른 글

스위프트 swift 열거형 enum  (0) 2018.08.21
스위프트 swift 클래스 class  (0) 2018.08.21
스위프트 swift 옵셔널 추출  (0) 2018.08.15
스위프트 swift 옵셔널  (0) 2018.08.14
스위프트 swift 반복문  (0) 2018.08.14

+ Recent posts