Latest web development tutorials

วิธีการสวิฟท์

สวิฟท์เป็นหน้าที่ของวิธีการที่เกี่ยวข้องกับบางประเภท

ใน Objective-C, ชั้นเรียนเป็นวิธีเดียวที่กำหนดชนิด แต่สวิฟท์, คุณไม่เพียง แต่สามารถเลือกได้ว่าคุณต้องการที่จะกำหนดระดับ / struct / enum แต่ยังมีความยืดหยุ่นในประเภท (Class / struct / enum) ที่คุณสร้างขึ้นอยู่กับวิธีการนิยาม


วิธีการเช่น

ในภาษาสวิฟท์, วิธีการเช่นเป็นชั้นโดยเฉพาะอย่างยิ่งโครงสร้างหรือแจกแจงกรณีประเภท

วิธีการเช่นมีวิธีการดังต่อไปนี้:

  • คุณสามารถเข้าถึงและปรับเปลี่ยนคุณสมบัติเช่น

  • ตัวอย่างให้ฟังก์ชั่นที่เกี่ยวข้องกับวัตถุ

ตัวอย่างของวิธีการที่จะเขียนมันเป็นรอบ ๆ ระหว่างประเภทของการจัดฟัน ({})

ตัวอย่างของวิธีการส่อสามารถเข้าถึงวิธีการทั้งหมดและคุณสมบัติกรณีอื่น ๆ ประเภทที่มันกรรมสิทธิ์

ตัวอย่างของวิธีการเท่านั้นที่สามารถเรียกว่าอินสแตนซ์โดยเฉพาะอย่างยิ่งของชั้นที่มันเป็น

วิธีการเช่นนี้ไม่สามารถแยกจากกันบนอินสแตนซ์ที่มีอยู่จะเรียกว่า

ไวยากรณ์

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

ตัวอย่าง

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)

เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:

6
0

ระดับเคาน์เตอร์กำหนดสามวิธีเช่น:

  • increment เพื่อที่เคาน์เตอร์จะเพิ่มขึ้นโดยหนึ่ง;
  • incrementBy(amount: Int) ทำให้เคาน์เตอร์โดยค่าจำนวนเต็มระบุจะเพิ่มขึ้น;
  • reset เคาน์เตอร์ถูกตั้งค่าเป็น 0

Counter ชั้นนี้ยังประกาศแอตทริบิวต์ตัวแปร count ใช้มันเพื่อติดตามของมูลค่าปัจจุบันนับ


ชื่อพารามิเตอร์ท้องถิ่นและชื่อของวิธีการที่พารามิเตอร์ภายนอก

พารามิเตอร์ฟังก์ชั่นสวิฟท์สามารถมีทั้งชื่อท้องถิ่น (ในร่างกายของฟังก์ชั่นที่ใช้ภายใน) และชื่อภายนอก (ใช้เมื่อเรียกฟังก์ชั่น

วิธีการที่รวดเร็วและวิธี Objective-C ที่คล้ายกันมาก เช่นเดียวกับใน Objective-C, เช่นเดียวกับชื่อของสวิฟท์ในวิธีการที่มักจะเป็นคำบุพบทจุดกับวิธีการพารามิเตอร์แรกตัวอย่างเช่น: ด้วยสำหรับโดยและอื่น ๆ

เริ่มต้นเพียง Swift วิธีการของพารามิเตอร์แรกชื่อของชื่อพารามิเตอร์ในท้องถิ่นนั้นเริ่มต้นในเวลาเดียวกันกับชื่อพารามิเตอร์ชื่อพารามิเตอร์สองและต่อมาทั่วโลก

ตัวอย่างต่อไปนี้ 'No1' ประกาศในประเทศในชื่อพารามิเตอร์ในสวิฟท์ 'No2' สำหรับการประกาศทั่วโลกและเข้าถึงได้ผ่านทางโปรแกรมภายนอก

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)

เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:

600
320
3666

ไม่ว่าจะเป็นเพื่อให้การตั้งค่าชื่อภายนอก

เราบังคับอาร์กิวเมนต์แรกที่จะเพิ่มชื่อภายนอกกับชื่อของชื่อท้องถิ่นกับการใช้งานภายนอก (SWIFT 2.0 ก่อนที่จะใช้เครื่องหมาย #)

แต่เราสามารถใช้มันยังขีดล่าง (_) เพื่อตั้งข้อโต้แย้งสองและต่อมาไม่ได้ให้ชื่อภายนอก

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)

เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:

2400
500
45000

สถานที่ให้บริการด้วยตนเอง

ตัวอย่างของประเภทแต่ละคนมีคุณสมบัติที่เรียกว่านัยในตนเองตรงเช่นเดียวกับอินสแตนซ์ของตัวเอง

คุณสามารถใช้ตัวเองโดยปริยายทรัพย์สินในอินสแตนซ์วิธีการเช่นการอ้างอิงเช่นปัจจุบัน

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

เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:

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

ปรับเปลี่ยนวิธีการพิมพ์ค่าอินสแตนซ์

โครงสร้างภาษาสวิฟท์และ enumerations ประเภทค่า โดยทั่วไปชนิดของค่าทรัพย์สินที่ไม่สามารถแก้ไขได้ในวิธีการของอินสแตนซ์

แต่ถ้าคุณต้องการจริงๆที่จะเปลี่ยนโครงสร้างหรือคุณสมบัติที่ระบุในลักษณะเฉพาะคุณสามารถเลือกรูปแบบ (กรรมวิธี) วิธีแล้ววิธีการที่สามารถเปลี่ยนคุณสมบัติจากวิธีการภายในการเปลี่ยนแปลงใด ๆ และมันไม่ ในตอนท้ายของวิธีการที่มันจะถูกทิ้งไว้ในโครงสร้างเดิม

วิธีนี้ยังสามารถให้มันได้รับมอบหมายให้บริการตนเองโดยนัยตัวอย่างใหม่ของอินสแตนซ์ใหม่นี้จะเข้ามาแทนที่เช่นเดิมด้วยวิธีการ

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)

เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:

9
15
270
450
81000
135000

ในตัวแปรกระบวนการที่กำหนดให้กับตัวเอง

วิธีตัวแปรสามารถกำหนดคุณลักษณะของตนเองโดยนัยตัวอย่างใหม่

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)

เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:

39
65

วิธีการประเภท

วิธีการเช่นเป็นวิธีการที่เรียกว่าตัวอย่างของประเภทที่คุณยังสามารถกำหนดประเภทของวิธีการที่เรียกตัวเองวิธีการนี้เรียกว่าวิธีการประเภท

โครงสร้างคำสั่งและวิธีการระบุชนิดก่อนวิธีการคำหลัก func กับคำคง ชั้นอาจจะใช้คลาสคำหลักเพื่อช่วยให้ subclasses แทนที่การดำเนินงานระดับผู้ปกครอง

เช่นเดียวกับชนิดและวิธีการใช้อินสแตนซ์จุด (.) ไวยากรณ์ที่จะเรียก

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)

เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:

35
5