Swift - Struktur

Swift 4 menyediakan blok bangunan yang fleksibel dalam memanfaatkan konstruksi sebagai Struktur. Dengan menggunakan struktur ini sekali dapat mendefinisikan metode dan properti konstruksi.

Tidak seperti C dan Objective C

  • Struktur tidak memerlukan file dan antarmuka implementasi.

  • Struktur memungkinkan kita membuat satu file dan memperluas antarmukanya secara otomatis ke blok lain.

Dalam Struktur, nilai variabel disalin dan diteruskan dalam kode berikutnya dengan mengembalikan salinan nilai lama sehingga nilai tidak dapat diubah.

Sintaksis

Structures are defined with a 'Struct' Keyword.
struct nameStruct {
   Definition 1
   Definition 2
   ---
   Definition N
}

Definisi Struktur

Pertimbangkan misalnya, misalkan kita harus mengakses catatan siswa yang berisi nilai tiga mata pelajaran dan untuk mencari tahu total tiga mata pelajaran. Di sini markStruct digunakan untuk menginisialisasi struktur dengan tiga tanda sebagai datatype 'Int'.

struct MarkStruct {
   var mark1: Int
   var mark2: Int
   var mark3: Int
}

Mengakses Struktur dan Properti-nya

Anggota struktur diakses dengan nama strukturnya. Contoh struktur ini diinisialisasi oleh kata kunci 'let'.

struct studentMarks {
   var mark1 = 100
   var mark2 = 200
   var mark3 = 300
}

let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -

Mark1 is 100
Mark2 is 200
Mark3 is 300

Nilai siswa diakses oleh nama struktur 'studentMarks'. Anggota struktur diinisialisasi sebagai mark1, mark2, mark3 dengan nilai tipe integer. Kemudian struktur studentMarks () diteruskan ke 'marks' dengan kata kunci 'let'. Selanjutnya 'tanda' akan berisi nilai anggota struktur. Sekarang nilai dicetak dengan mengakses nilai anggota struktur dengan '.' dengan nama yang diinisialisasi.

struct MarksStruct {
   var mark: Int

   init(mark: Int) {
      self.mark = mark
   }
}

var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct     // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97

print(aStruct.mark)      // 98
print(bStruct.mark)      // 97

Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -

98
97

Praktik Penggunaan Terbaik dari Struktur

Bahasa Swift 4 menyediakan fungsionalitas untuk mendefinisikan struktur sebagai tipe data khusus untuk membangun blok fungsi. Contoh struktur diteruskan nilainya ke blok yang ditentukan untuk manipulasi lebih lanjut.

Perlu memiliki struktur

  • Untuk merangkum nilai data sederhana.

  • Untuk menyalin data yang dienkapsulasi dan properti yang terkait dengan 'nilai' daripada dengan 'referensi'.

  • Struktur untuk 'Salin' dan 'Referensi'.

Struktur di Swift 4 meneruskan anggotanya dengan nilai-nilai mereka, bukan dengan referensinya.

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
   }
}

var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)

Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -

98
96
100

Contoh lain

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
   }
}

var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)

print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -

34
42
13

Struktur 'markStruct' didefinisikan pertama kali dengan anggotanya mark1, mark2 dan mark3. Sekarang variabel kelas anggota diinisialisasi untuk menampung nilai integer. Kemudian salinan anggota struktur dibuat dengan Kata Kunci 'sendiri'. Setelah salinan anggota struktur dibuat, blok struktur dengan tanda parameternya diteruskan ke variabel 'marks' yang sekarang akan menampung nilai siswa. Kemudian tanda akan dicetak sebagai 98, 96, 100. Langkah selanjutnya untuk anggota struktur yang sama, contoh lain bernama 'gagal' digunakan untuk menunjuk anggota struktur yang sama dengan tanda yang berbeda. Kemudian hasilnya sekarang dicetak sebagai 34, 42, 13. Ini dengan jelas menjelaskan bahwa struktur akan memiliki salinan variabel anggota kemudian meneruskan anggota ke blok fungsi yang akan datang.