Swift 101 - Kelas, Pembolehubah, Hartanah & Kaedah

Seperti yang dijanjikan, ini adalah ansuran pertama saya untuk belajar program dalam bahasa Swift yang baru!

Menentukan Kelas di Swift

Kod berikut menunjukkan contoh definisi kelas Swift:

Untuk mengisytiharkan kelas di Swift, anda menggunakan kata kunci kelas diikuti dengan nama kelas. Jika ia mempunyai superclass, anda menambah kolon dan nama superclass. Permulaan dan akhir kelas ditunjukkan oleh pendakap pembukaan dan penutupan kerinting.

Dalam Swift, kelas ditakrifkan dalam fail kod sumber tunggal berbanding dengan Objektif-C, di mana kelas ditakrifkan dalam dua fail berasingan, fail header (.h) dan fail pelaksanaan (.m).

Mengisytiharkan Pembolehubah

Kod berikut menunjukkan contoh perisytiharan berubah:

Anda memulakan perisytiharan ubah dengan kata kunci var diikuti dengan nama pembolehubah. Seterusnya, anda menambah kolon, diikuti dengan jenis pemboleh ubah. Selepas itu, anda boleh menetapkan nilai kepada pemboleh ubah menggunakan operator (=) penguntukan.

Dalam Swift, jika anda memperuntukkan nilai awal kepada pembolehubah, anda tidak perlu menentukan jenis pembolehubah seperti yang ditunjukkan dalam kod berikut:

Anda boleh melakukan ini kerana Swift mempunyai sesuatu yang dipanggil kesimpulan jenis di mana ia boleh memikirkan, atau menyimpulkan jenis pemboleh ubah berdasarkan nilai yang anda berikan kepadanya.

Dalam Objektif-C anda boleh mengisytiharkan pemboleh ubah contoh di peringkat kelas dan pembolehubah tempatan dalam kaedah. Di Swift, tidak terdapat pembolehubah peringkat kelas-hanya pembolehubah setempat yang anda nyatakan dalam kaedah. Walau bagaimanapun, anda boleh mengisytiharkan hartanah di peringkat kelas (lihat bahagian Pengisytiharan Properties di bawah.)

Penghujung Asterisk

Dalam Objektif-C anda menggunakan asterisk untuk menunjukkan bahawa pemboleh ubah memegang penuding ke objek. Dalam Swift, pemalar atau pemboleh ubah boleh mengandungi penuding ke alamat dalam memori (walaupun bukan penunjuk langsung), tetapi anda tidak perlu menggunakan asterisk dalam konteks ini.

Mengisytiharkan Hartanah Mudah

Kod berikut menunjukkan contoh perisytiharan harta:

Seperti yang anda lihat, ia sangat serupa dengan mengisytiharkan pembolehubah, kecuali anda mengisytiharkan harta di peringkat kelas dan bukannya dalam kaedah.

Seperti pembolehubah, jika anda memberi nilai awal kepada harta, anda tidak perlu menentukan jenis harta itu. Anda juga boleh menginisialkan sifat dari dalam kaedah inisialisasi (lihat bahagian di bawah pada Pemula untuk perincian.) Kod berikut menunjukkan contoh mendeklarasikan suatu harta tanpa menyatakan jenis:

Dalam Objektif-C, sifat biasanya mempunyai pemboleh ubah contoh yang menyokong nilai sebenar harta itu disimpan. Swift memudahkan sifat dengan menyatukan konsep sifat dan pembolehubah contoh. Hartanah tidak lagi mempunyai pemboleh ubah contoh sokongan. Semua tentang harta diisytiharkan di satu lokasi.

Di Swift, anda tidak perlu menggunakan kata kunci diri merujuk kepada harta kecuali jika kaedah yang anda menulis kod mempunyai parameter dengan nama yang sama dengan harta itu.

Mengisytiharkan Hartanah Dikira

Swift juga telah mengira sifat - sifat yang mempunyai kaedah mendapatkan dan tetapkan yang berkaitan seperti yang ditunjukkan dalam kod berikut:

Dalam contoh ini, kelas Thermometer mempunyai suhu mudahFahrenheit dan harta temperatCelsius yang dikira .

Perhatikan bahawa kaedah mendapatkan dan tetapkan kelas Thermometer tidak merujuk pembolehubah contoh, kerana tidak ada perkara seperti pembolehubah contoh di Swift!

Dalam kes ini, kaedah mendapatkan mendapatkan nilai dari suhuFahrenheit, menukarnya kepada Celsius dan mengembalikan nilai. Kaedah set mengambil nilai yang diluluskan kepadanya, menukarnya kepada Fahrenheit dan kemudian menyimpan hasilnya pada suhuFahrenheit .

Nilai yang diluluskan kepada kaedah set properti disimpan dalam parameter yang dinamakan secara tersirat yang dinamakan newValue . Jika anda ingin menggunakan nama parameter yang berbeza, anda boleh menentukan nama dalam kurungan selepas set seperti yang ditunjukkan dalam kod berikut:

Menentukan nama parameter boleh membuat kod anda lebih mudah difahami. Dalam contoh ini, menetapkan nama parameter kepada celsiusValue menjadikannya lebih jelas bahawa kaedah set menukar nilai dari Celsius ke Fahrenheit.

Kaedah Pengisytiharan

Kod berikut mengandungi contoh perisytiharan kaedah Swift:

Seperti Objektif-C, di Swift, anda mengisytiharkan kaedah contoh antara pembukaan dan penutupan pendakap kerinting kelas yang mana ia tergolong.

Untuk mengisytiharkan kaedah, anda mula-mula menentukan kata kunci kata, diikuti dengan nama kaedah. Sekiranya kaedah mempunyai parameter, anda memasukkannya dalam kurungan. Untuk setiap parameter, anda nyatakan nama parameter diikuti dengan kolon, diikuti dengan jenisnya. Jika kaedah mempunyai nilai pulangan, anda kemudian tambah tanda hubung dan lebih besar daripada tanda ( -> ) diikuti dengan jenis nilai pulangan.

Kod berikut mengandungi contoh kaedah yang tidak menerima parameter dan tidak mengembalikan apa-apa:

Seperti yang anda lihat, kurungan diperlukan selepas nama kaedah walaupun tiada parameter. Kaedah yang tidak ada pulangan tidak memerlukan penunjuk nilai pulangan ( -> ) selepas kurungan.

Kaedah Initializer

Kod berikut mengandungi contoh kaedah permulaan yang digunakan untuk memulakan kelas.

Kaedah inisialis selalu dinamakan init dan, tidak seperti Objektif-C, tidak pernah mengembalikan nilai. Dalam contoh di atas, kaedah init menerima parameter semasaTemperature di mana anda boleh lulus suhu awal. Nilai ini kemudian disimpan di dalam suhuFahrenheit .

Anda boleh membuat pelbagai kaedah initalizer seperti yang ditunjukkan dalam contoh kod berikut:

Dalam contoh ini, kedua-dua kaedah dinamakan init, jadi untuk menjadikan nama-nama itu unik, nama luaran diberikan kepada parameter -Fahrenheit dan dariCelsius . Ini menjadikan nama penuh kaedah init (dariFahrenheit :) dan init (dariCelsius :) masing-masing.

Perlu diperhatikan bahawa dalam Swift, kaedah init tidak diwarisi. Dari perspektif praktikal, ini bermakna anda tidak boleh meletakkan sebarang kod dalam kaedah init yang anda mahu dapat menimpa subkelas. Sekiranya anda mempunyai kod yang anda mahu dilaksanakan semasa fasa init kelas dan mahu dapat mengatasi kod itu dalam subkelas, anda boleh membuat kaedah berasingan, letakkan kod permulaan dalam kaedah itu, dan kemudian panggil kaedah itu dari panas .

Mewujudkan Contoh Kelas

Berikut ialah contoh cara membuat contoh kelas:

Seperti yang anda lihat, untuk membuat contoh kelas, anda mengisytiharkan pembolehubah untuk memegang sebutan untuk kelas, taipkan tanda yang sama (operator tugasan) dan kemudian nama kelas yang diikuti oleh tanda kurung.

Kesimpulannya

Ini adalah beberapa asas yang anda perlu ketahui untuk bermula dengan pengaturcaraan Swift. Dalam jawatan yang akan datang saya akan menyelam lebih mendalam ke dalam bahasa untuk membantu anda menjadi mahir dengan sintaks dan struktur baru Swift.