Latest web development tutorials

Metode Swift

Swift adalah fungsi dari metode yang terkait dengan jenis tertentu

Di Objective-C, kelas adalah satu-satunya jenis didefinisikan metode. Tapi Swift, Anda tidak hanya dapat memilih apakah Anda ingin mendefinisikan kelas / struct / enum, tetapi juga fleksibel dalam jenis (kelas / struct / enum) yang Anda buat pada metode definisi.


Metode instance

Dalam bahasa Swift, metode contoh milik kelas tertentu, struktur atau jenis contoh disebutkan.

metode contoh memberikan metode berikut:

  • Anda dapat mengakses dan memodifikasi properti misalnya

  • Misalnya menyediakan fungsi yang berhubungan dengan objek

Contoh metode untuk menulis sekitar itu milik antara jenis kawat gigi ({}).

Contoh metode implisit dapat mengakses semua metode dan properti dari contoh-contoh lain dari jenis mana ia berasal.

Contoh metode hanya dapat disebut contoh khusus dari kelas mana ia berasal.

metode contoh tidak dapat dipisahkan dari contoh yang ada disebut.

tatabahasa

func funcname(Parameters) -> returntype
{
    Statement1
    Statement2
    ……
    Statement N
    return parameters
}

contoh

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 di atas eksekusi program adalah:

6
0

kelas kontra mendefinisikan tiga metode misalnya:

  • increment sehingga meja bertambah satu;
  • incrementBy(amount: Int) membuat kontra dengan nilai integer yang ditentukan bertambah;
  • reset counter reset ke 0.

Counter Kelas ini juga menyatakan atribut variabel count , menggunakannya untuk melacak nilai counter saat ini.


Nama parameter lokal dan nama metode parameter eksternal

parameter fungsi Swift dapat memiliki kedua nama lokal (dalam tubuh fungsi yang digunakan secara internal) dan nama eksternal (digunakan saat memanggil fungsi

metode cepat dan metode Objective-C sangat mirip. Seperti di Objective-C, sama dengan nama Swift dalam metode biasanya preposisi poin dengan metode parameter pertama, misalnya: dengan, untuk, oleh, dan sebagainya.

bawaan Swift hanya untuk metode parameter pertama nama nama parameter lokal; default pada saat yang sama untuk kedua dan selanjutnya global yang nama parameter nama parameter.

Contoh-contoh berikut 'no1' menyatakan secara lokal di nama parameter dalam derasnya. 'No2' untuk deklarasi global dan diakses melalui program eksternal.

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)

Output di atas eksekusi program adalah:

600
320
3666

Apakah untuk memberikan pengaturan nama eksternal

Kami memaksa argumen pertama untuk menambahkan nama eksternal untuk nama nama lokal sebagai penggunaan eksternal (Swift 2.0 sebelum menggunakan tanda #).

Sebaliknya, kita dapat menggunakannya juga menggarisbawahi (_) untuk mengatur argumen kedua dan selanjutnya tidak memberikan nama eksternal.

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)

Output di atas eksekusi program adalah:

2400
500
45000

properti diri

Setiap contoh dari jenis memiliki sifat yang disebut implisit diri, diri persis sama dengan contoh sendiri.

Anda dapat menggunakan self implisit ini properti dalam contoh metode contoh untuk referensi contoh saat.

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()

Output di atas eksekusi program adalah:

Self 内: 900
Self 内: 1500
结果为: 880
结果为: 850
结果为: 1480
结果为: 1450

Mengubah jenis nilai metode contoh

struktur bahasa Swift, dan mantri adalah jenis nilai. Secara umum, jenis nilai properti tidak dapat diubah dalam metode instan nya.

Tetapi jika Anda benar-benar perlu untuk mengubah struktur atau properti disebutkan dengan cara tertentu, Anda dapat memilih variasi (bermutasi) metode, maka metode ini dapat mengubah sifat dari metode internal; perubahan, dan itu tidak pada akhir metode itu akan ditinggalkan dalam struktur asli.

Metode ini juga dapat memberikan tersirat tugas properti diri contoh baru dari contoh baru ini untuk menggantikan contoh asli dengan metode.

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)

Output di atas eksekusi program adalah:

9
15
270
450
81000
135000

Dalam variabel proses ditugaskan untuk diri

Metode variabel dapat menetapkan atribut diri tersirat contoh baru.

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)

Output di atas eksekusi program adalah:

39
65

metode Jenis

metode contoh adalah metode disebut sebuah contoh dari jenis, Anda juga dapat menentukan jenis metode menyebut dirinya, metode ini disebut metode Jenis.

Struktur pernyataan dan metode tipe enumerasi sebelum metode func kata kunci dengan kata kunci statis. Kelas mungkin menggunakan kata kunci class untuk memungkinkan subclass menimpa pelaksanaan kelas induk.

Jenis dan contoh yang sama metode menggunakan titik (.) Sintaks untuk memohon.

import Cocoa

class Math
{
    class func abs(number: Int) -> Int
    {
        if number < 0
        {
            return (-number)
        }
        else
        {
            return number
        }
    }
}

struct absno
{
    static func abs(number: Int) -> Int
    {
        if number < 0
        {
            return (-number)
        }
        else
        {
            return number
        }
    }
}

let no = Math.abs(-35)
let num = absno.abs(-5)

print(no)
print(num)

Output di atas eksekusi program adalah:

35
5