Struktur pantas
Struktur pantas ialah binaan serba boleh dan fleksibel untuk kod bangunan.
Kita boleh mentakrifkan sifat (pemalar, pembolehubah) dan menambah kaedah pada struktur untuk memanjangkan kefungsian struktur.
Perbezaan daripada C dan Objektif C ialah:
Struktur tidak perlu mengandungi fail pelaksanaan dan antara muka. Struktur
membolehkan kami mencipta satu fail dan sistem secara automatik akan menjana antara muka luaran kepada kod lain.
Struktur sentiasa dihantar dalam kod dengan disalin, jadi nilainya tidak boleh diubah suai.
Syntax
Kami mentakrifkan struktur melalui struct kata kunci:
struct nameStruct { Definition 1 Definition 2 …… Definition N }
Instance
Kami mentakrifkan struktur bernama MarkStruct, The attributes of the struktur ialah markah pelajar dalam tiga mata pelajaran, dan jenis data ialah Int:
struct MarkStruct{ var mark1: Int var mark2: Int var mark3: Int }
Kita boleh mengakses ahli struktur melalui nama struktur.
Struktur dibuat seketika menggunakan kata kunci let:
import Cocoa struct studentMarks { var mark1 = 100 var mark2 = 78 var mark3 = 98 } let marks = studentMarks() print("Mark1 是 \(marks.mark1)") print("Mark2 是 \(marks.mark2)") print("Mark3 是 \(marks.mark3)")
Hasil keluaran pelaksanaan program di atas ialah:
Mark1 是 100 Mark2 是 78 Mark3 是 98
Dalam contoh , kami lulus nama struktur 'studentMarks' mengakses markah pelajar. Ahli struktur dimulakan sebagai mark1, mark2, mark3, dan jenis data ialah integer.
Kemudian kami membuat instantiat struktur studentMarks() dan menghantarnya ke tanda dengan menggunakan kata kunci let.
Akhir sekali, kami mengakses nilai ahli struktur melalui nombor ..
Instasiasi berikut melepasi nilai apabila menginstant struktur dan mengklon struktur:
import Cocoa struct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } var aStruct = MarksStruct(mark: 98) var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体! bStruct.mark = 97 print(aStruct.mark) // 98 print(bStruct.mark) // 97
Hasil keluaran pelaksanaan program di atas ialah:
98 97
Aplikasi struktur
Dalam kod anda, anda boleh menggunakan struktur untuk menentukan jenis data tersuai anda.
Kejadian struktur sentiasa dihantar mengikut nilai untuk menentukan jenis data tersuai anda.
Sebagai garis panduan umum, sila pertimbangkan untuk membina struktur apabila satu atau lebih syarat berikut dipenuhi:
Tujuan utama struktur adalah untuk merangkum bahagian kecil bilangan nilai data ringkas yang berkaitan.
Ada sebab untuk menjangkakan bahawa apabila tika struktur ditetapkan atau diluluskan, data yang terkandung akan disalin dan bukannya dirujuk.
Sebarang atribut jenis nilai yang disimpan dalam struktur juga akan disalin dan bukannya dirujuk.
Sesuatu struktur tidak perlu mewarisi sifat atau tingkah laku jenis lain yang sedia ada.
Sebagai contoh, struktur sesuai digunakan dalam situasi berikut:
Saiz bentuk geometri, merangkum atribut
width
danheight
Atribut, kedua-duanya jenisDouble
.Laluan dalam julat tertentu merangkumi atribut
start
dan atributlength
, yang kedua-duanya berjenisInt
.ialah titik dalam sistem koordinat tiga dimensi, merangkum atribut
x
,y
danz
, ketiga-tiganya adalah daripada jenisDouble
.
Kejadian struktur diluluskan mengikut nilai dan bukannya rujukan.
import Cocoa struct markStruct{ var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int){ self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 } } print("优异成绩:") var marks = markStruct(mark1: 98, mark2: 96, mark3:100) print(marks.mark1) print(marks.mark2) print(marks.mark3) print("糟糕成绩:") var fail = markStruct(mark1: 34, mark2: 42, mark3: 13) print(fail.mark1) print(fail.mark2) print(fail.mark3)
Hasil keluaran pelaksanaan program di atas ialah:
优异成绩: 98 96 100 糟糕成绩: 34 42 13
Dalam contoh di atas, kami mentakrifkan struktur markStruct, dengan tiga atribut ahli: mark1, mark2 dan mark3. Apabila menggunakan sifat ahli dalam struktur, gunakan kata kunci diri.
Daripada contoh, kita boleh memahami dengan baik bahawa tika struktur diluluskan oleh nilai.