Jenis Nilai dan Ketidakbolehubahan
Lihat cara let menghalang mutasi jenis nilai.
Jenis Nilai dan Ketidakbolehubahan ialah pelajaran Swift Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Swift Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Swift Academy merangkumi sejumlah 4 pelajaran.
struct ialah Jenis Nilai
Dalam Swift, struct dan enum ialah jenis nilai. Memberikan satu nilai kepada pemboleh ubah baharu akan menyalinnya.
struct Point { var x: Int; var y: Int }
var a = Point(x: 1, y: 2)
var copy = a
copy.x = 99
print(a.x, copy.x)let Mengunci Keseluruhan Nilai
Mengisytiharkan struktur dengan let menjadikan keseluruhan nilai tidak boleh diubah, termasuk semua sifatnya.
struct Counter { var value: Int }
let c = Counter(value: 0)
// c.value = 5 // compile error
print(c.value)var Membenarkan Perubahan
Gunakan var apabila anda bercadang mengubah sifat struktur selepas penciptaannya.
struct Counter { var value: Int }
var c = Counter(value: 0)
c.value = 5
print(c.value)Salinan semasa Penetapan
Setiap pemboleh ubah menyimpan copy bebasnya sendiri. Mengubah satu pemboleh ubah tidak akan menjejaskan pemboleh ubah yang lain.
struct Box { var label: String }
var first = Box(label: "A")
var second = first
second.label = "B"
print(first.label, second.label)Semantik Nilai dalam Fungsi
Menghantar struktur kepada fungsi akan menghantar copy. Nilai asal di luar fungsi tidak berubah.
struct Score { var points: Int }
func bump(_ s: Score) {
var local = s
local.points += 10
}
var s = Score(points: 0)
bump(s)
print(s.points)Sifat Tidak Boleh Diubah
Sifat yang diisytiharkan dengan let di dalam struktur tidak boleh berubah, walaupun pada tika var.
struct User { let id: Int; var name: String }
var u = User(id: 1, name: "Ada")
u.name = "Bob"
// u.id = 2 // compile error
print(u.id, u.name)Tatasusunan Juga Jenis Nilai
Array, Dictionary dan Set Swift juga merupakan struktur, jadi semuanya disalin semasa penetapan.
var a = [1, 2, 3]
var b = a
b.append(4)
print(a)
print(b)String ialah Jenis Nilai
String juga merupakan jenis nilai. Mengubah salinan tidak menjejaskan nilai asal.
var s1 = "hi"
var s2 = s1
s2 += " there"
print(s1)
print(s2)Mengapa Jenis Nilai Membantu
Semantik nilai menghalang pepijat keadaan dikongsi yang tidak disengajakan. Anda boleh menaakul tentang nilai secara setempat tanpa bimbang tentang pihak lain yang memegang rujukan.
struct Config { var retries: Int }
let defaultConfig = Config(retries: 3)
var custom = defaultConfig
custom.retries = 5
print(defaultConfig.retries, custom.retries)Ketidakbolehubahan dan Keselamatan
Menandakan nilai sebagai let apabila boleh menjadikan kod lebih selamat dan jelas. Pengkompil menguatkuasakan bahawa nilai itu tidak pernah berubah.
let limit = 100
let name = "stable"
print(limit, name)Penetapan Semula Pemboleh Ubah let Gagal
Anda tidak boleh menetapkan semula ikatan let atau mengubah nilai yang dipegangnya.
let pi = 3.14
// pi = 3.15 // compile error
print(pi)Semakan Pantas
Uji tingkah laku jenis nilai.
Rumusan
Struktur dan enumerasi ialah jenis nilai: kedua-duanya disalin semasa penetapan dan apabila dihantar kepada fungsi. Ikatan let mengunci keseluruhan nilai, dan sifat let tidak boleh berubah. Ini menghasilkan keadaan yang boleh dijangka dan terasing.
struct P { var n: Int }
var a = P(n: 1)
var b = a
b.n = 9
print(a.n, b.n)Pelajari Swift dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 122
- Pelajaran
- 409
Soalan Lazim
Adakah pelajaran “Jenis Nilai dan Ketidakbolehubahan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Swift Academy, termasuk “Jenis Nilai dan Ketidakbolehubahan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Swift Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Jenis Nilai dan Ketidakbolehubahan”?
Lihat cara let menghalang mutasi jenis nilai. Anda berlatih Swift Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Swift Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Swift Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Jenis Nilai dan Ketidakbolehubahan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Jenis Nilai dan Ketidakbolehubahan
- Kata Kunci mutating
- Mutasi dan Penetapan Semula self
- Alternatif Tanpa Mutasi