Kaedah pantas
Kaedah Swift ialah fungsi yang dikaitkan dengan beberapa jenis tertentu
Dalam Objektif-C, kelas ialah satu-satunya jenis yang boleh menentukan kaedah. Tetapi dalam Swift, anda bukan sahaja boleh memilih sama ada untuk menentukan kelas/struktur/penghitungan, tetapi juga menentukan kaedah secara fleksibel pada jenis (kelas/struktur/penghitungan) yang anda buat.
Kaedah contoh
Dalam bahasa Swift, kaedah contoh ialah kaedah yang tergolong dalam tika kelas, struktur atau jenis penghitungan tertentu.
Kaedah contoh menyediakan kaedah berikut:
boleh mengakses dan mengubah suai sifat contoh
Menyediakan fungsi yang berkaitan dengan tujuan contoh
kaedah tika hendaklah ditulis antara kurungan kerinting di sekeliling ({}) daripada jenis yang dimilikinya.
Kaedah tika boleh secara tersirat mengakses semua kaedah tika lain dan sifat jenisnya.
Kaedah contoh hanya boleh dipanggil oleh tika tertentu kelas yang dimilikinya.
Kaedah tika tidak boleh dipanggil secara bebas daripada tika sedia ada.
Syntax
func funcname(Parameters) -> returntype { Statement1 Statement2 …… Statement N return parameters }
Instance
import Cocoa class Counter { var count = 0 func increment() { count++ } func incrementBy(amount: Int) { count += amount } func reset() { count = 0 } } // 初始计数值是0 let counter = Counter() // 计数值现在是1 counter.increment() // 计数值现在是6 counter.incrementBy(5) print(counter.count) // 计数值现在是0 counter.reset() print(counter.count)
Output pelaksanaan program di atas ialah:
6 0
Kelas Counter mentakrifkan tiga kaedah contoh:
increment
Menaikkan pembilang sebanyak satu; Tetapkan semula pembilang kepada 0. incrementBy(amount: Int)
Kelas ini juga mengisytiharkan atribut boleh ubah - , yang digunakan untuk menjejaki nilai pembilang semasa.
Nama parameter tempatan dan nama parameter luaran kaedahreset
Counter
Kaedah dalam Swift sangat serupa dengan kaedah dalam Objektif-C, seperti dalam Objektif-C, nama kaedah dalam Swift biasanya menunjukkan parameter pertama kaedah dengan preposisi, seperti: dengan. , untuk. , oleh, dsb. count
import Cocoa class division { var count: Int = 0 func incrementBy(no1: Int, no2: Int) { count = no1 / no2 print(count) } } let counter = division() counter.incrementBy(1800, no2: 3) counter.incrementBy(1600, no2: 5) counter.incrementBy(11000, no2: 3)
Keluaran program di atas ialah:
600 320 3666
. Sama ada. Menyediakan tetapan nama luaran
Kami memaksa menambah nama luaran pada parameter pertama untuk menggunakan nama tempatan ini sebagai nama luaran (sebelum Swift 2.0, tanda # digunakan sebaliknya, kami juga boleh). gunakan garis bawah. (_) Tetapkan parameter kedua dan seterusnya tanpa memberikan nama luaran >Anda boleh menggunakan atribut diri tersirat ini dalam kaedah contoh bagi contoh semasa.
import Cocoa class multiplication { var count: Int = 0 func incrementBy(first no1: Int, no2: Int) { count = no1 * no2 print(count) } } let counter = multiplication() counter.incrementBy(first: 800, no2: 3) counter.incrementBy(first: 100, no2: 5) counter.incrementBy(first: 15000, no2: 3)
Ubah suai jenis nilai dalam kaedah contoh
Struktur dan penghitungan dalam bahasa Swift ialah jenis nilai. Secara umum, sifat jenis nilai tidak boleh diubah suai dalam kaedah contohnya.
Walau bagaimanapun, jika anda benar-benar perlu mengubah suai sifat struktur atau penghitungan dalam kaedah tertentu, anda boleh memilih untuk mengubah kaedah, dan kemudian kaedah itu boleh mengubah sifatnya dari dalam kaedah tersebut; ia membuat akan kekal dalam struktur asal pada akhir kaedah. Kaedah
juga boleh menetapkan tika baharu kepada atribut kendiri tersiratnya ini akan menggantikan tika asal selepas kaedah tamat.
2400 500 45000
Hasil keluaran pelaksanaan program di atas ialah:
import Cocoa class calculations { let a: Int let b: Int let res: Int init(a: Int, b: Int) { self.a = a self.b = b res = a + b print("Self 内: \(res)") } func tot(c: Int) -> Int { return res - c } func result() { print("结果为: \(tot(20))") print("结果为: \(tot(50))") } } let pri = calculations(a: 600, b: 300) let sum = calculations(a: 1200, b: 300) pri.result() sum.result()
Tetapkan nilai kepada diri dalam kaedah pembolehubah
Kaedah pembolehubah boleh menetapkan nilai baharu kepada contoh diri atribut tersirat.
Self 内: 900 Self 内: 1500 结果为: 880 结果为: 850 结果为: 1480 结果为: 1450
Output pelaksanaan program di atas ialah:
import Cocoa struct area { var length = 1 var breadth = 1 func area() -> Int { return length * breadth } mutating func scaleBy(res: Int) { length *= res breadth *= res print(length) print(breadth) } } var val = area(length: 3, breadth: 5) val.scaleBy(3) val.scaleBy(30) val.scaleBy(300)
Kaedah jenis
Kaedah instance ialah kaedah yang dipanggil oleh tika jenis tersebut tentukan jenis Kaedah yang dipanggil dengan sendirinya dipanggil kaedah jenis.
Isytiharkan jenis kaedah struktur dan penghitungan, dan tambahkan kata kunci statik sebelum kata kunci fungsi kaedah tersebut. Kelas boleh menggunakan kelas kata kunci untuk membenarkan subkelas mengatasi kaedah pelaksanaan kelas induk.
Kaedah jenis dipanggil dengan sintaks titik (.) sama seperti kaedah contoh.
9 15 270 450 81000 135000
Hasil keluaran pelaksanaan program di atas ialah:
import Cocoa struct area { var length = 1 var breadth = 1 func area() -> Int { return length * breadth } mutating func scaleBy(res: Int) { self.length *= res self.breadth *= res print(length) print(breadth) } } var val = area(length: 3, breadth: 5) val.scaleBy(13)