Thuta Learning
ရှာဖွေရန်
AdvancedProgrammingbeginner

Structs vs Classes

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

Swift မှာ custom data model တည်ဆောက်ဖို့ struct နဲ့ class ကိုအသုံးများပါတယ်။ Struct က value type ဖြစ်ပြီး copy လုပ်တဲ့အခါ data အသစ်တစ်ခုဖြစ်သွားပါတယ်။ Class က reference type ဖြစ်ပြီး copy လုပ်တဲ့အခါ object တစ်ခုတည်းကိုပဲ reference လုပ်နေတတ်ပါတယ်။

App model တွေ၊ simple data container တွေမှာ struct ကိုအရင်စဉ်းစားတာကောင်းပါတယ်။ Shared mutable state, inheritance လိုတဲ့နေရာတွေမှာ class ကိုသုံးနိုင်ပါတယ်။

swift
struct Course {
    var title: String
    var lessonCount: Int
}

class Student {
    var name: String
    var enrolledCourse: Course?

    init(name: String) {
        self.name = name
    }
}

let swiftCourse = Course(title: "Swift Basics", lessonCount: 20)
let student = Student(name: "Nandar")
student.enrolledCourse = swiftCourse

print(student.name)
print(student.enrolledCourse?.title ?? "No course")

Course က simple data model ဖြစ်လို့ struct နဲ့ရေးထားပါတယ်။ Student က initializer ပါပြီး course ကိုနောက်မှချိတ်နိုင်အောင် class နဲ့ပြထားပါတယ်။ enrolledCourse? က course မရွေးထားသေးနိုင်လို့ optional ဖြစ်ပါတယ်။

You should see
Nandar Swift Basics

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Class property ကို initial value မပေးဘဲ initializer ထဲမှာလည်းမသတ်မှတ်ရင် compile error ဖြစ်နိုင်ပါတယ်။
Structs vs Classes | Thuta Learning