ভাষা সুইফ্টে, উদাহরণের সূচনা করার জন্য, একটিটিকে class শ্রেণীর সমস্ত ক্ষেত্র পূরণ করতে হবে এবং কেবল তখনই সুপার কনস্ট্রাক্টরকে কল করতে হবে:
class Base {
var name: String
init(name: String) {
self.name = name
}
}
class Derived: Base {
var number: Int
init(name: String, number: Int) {
// won't compile if interchange lines
self.number = number
super.init(name)
}
}
আমার জন্য এটি পিছনের দিকে মনে হচ্ছে, কারণ self
ক্ষেত্রগুলিতে মান নির্ধারণের আগে দৃষ্টান্তটি তৈরি করা দরকার এবং এই কোডটি এমন ধারণা দেয় যাতে শৃঙ্খলা কেবল অ্যাসাইনমেন্টের পরে ঘটে। এগুলি ছাড়াও, সুপারক্লাসের তার উপক্লাসের 'প্রবর্তিত বৈশিষ্ট্যগুলি পড়ার কোনও আইনী উপায় নেই, সুতরাং সুরক্ষার ক্ষেত্রে এই ক্ষেত্রে গণনা করা হয় না।
এছাড়াও, জাভাস্ক্রিপ্ট, এবং এমনকি অবজেক্টিভ সি, যা কিছুটা আধ্যাত্মিক পূর্বসূরী সুইফটের পূর্বের ভাষা, যেমন অ্যাক্সেসের আগে চেইন কল প্রয়োজন self
, পরে নয় after
সুপারকন্সট্রাক্টরকে কল করার আগে ক্ষেত্রগুলি সংজ্ঞায়িত করার জন্য এই পছন্দ করার পিছনে যুক্তি কী?
self
।