Rate this post

Trong Swift4, các phương thức là các hàm được liên kết với một kiểu cụ thể. Trong Objective-C, các lớp được sử dụng để định nghĩa các phương thức trong khi trong Swift4, chúng ta có các phương thức cho Lớp, Cấu trúc và Kiểu liệt kê.

Giới thiệu về phương thức trong Swift 4

Trong Swift 4, phương thức là một khối mã được định nghĩa để thực hiện một tác vụ cụ thể hoặc một hành động trên một đối tượng cụ thể. Phương thức là một phần quan trọng trong việc tổ chức mã và xử lý logic trong Swift.

Một phương thức trong Swift 4 được định nghĩa bên trong một lớp, cấu trúc hoặc một đối tượng. Nó có thể được gọi để thực hiện một tác vụ hoặc truy xuất thông tin từ đối tượng chứa nó.

Phương thức trong Swift 4 có thể nhận các tham số đầu vào và trả về một giá trị nếu cần thiết. Chúng cũng có thể có một hoặc nhiều tham số mặc định để giúp việc sử dụng phương thức dễ dàng hơn.

Ngoài ra, trong Swift 4, chúng ta cũng có thể định nghĩa phương thức tĩnh (static methods) mà không cần tạo một thể hiện của lớp hoặc đối tượng. Phương thức tĩnh có thể được gọi trực tiếp từ lớp hoặc đối tượng chứa nó.

Một trong những tính năng mạnh mẽ của Swift 4 là khả năng sử dụng phương thức mở rộng (extension methods). Điều này cho phép chúng ta thêm các phương thức mới vào một lớp hoặc đối tượng đã tồn tại mà không cần phải thay đổi mã nguồn gốc.

Phương thức trong Swift 4 giúp chúng ta tổ chức mã một cách rõ ràng và linh hoạt, tăng tính tái sử dụng và giúp giảm sự trùng lặp mã. Điều này cải thiện khả năng bảo trì và phát triển ứng dụng, đồng thời tạo ra mã nguồn dễ đọc và dễ hiểu.

Xem thêm Tự học HTML: HTML ngữ nghĩa(semantic)

Cú pháp phương thức

Cú pháp để định nghĩa một phương thức trong Swift 4 như sau:

class MyClass {
    func methodName(parameter1: Type1, parameter2: Type2) -> ReturnType {
        // Mã thực hiện phương thức
        return value // Giá trị trả về (nếu có)
    }
}

Trong đó:

  • class MyClass là lớp hoặc cấu trúc chứa phương thức.
  • func là từ khóa để định nghĩa một phương thức.
  • methodName là tên của phương thức.
  • parameter1, parameter2 là các tham số đầu vào của phương thức, mỗi tham số được định nghĩa với tên và kiểu dữ liệu của nó.
  • Type1, Type2 là kiểu dữ liệu của các tham số đầu vào.
  • ReturnType là kiểu dữ liệu của giá trị trả về (nếu có).
  • Mã thực hiện phương thức được đặt bên trong cặp dấu ngoặc nhọn {}.
  • return value là lệnh trả về giá trị từ phương thức (nếu có giá trị trả về). Thông qua lệnh return, chúng ta có thể trả về kết quả và kết thúc phương thức.

Chúng ta có thể gọi phương thức bằng cách sử dụng tên của đối tượng hoặc thể hiện của lớp, cấu trúc chứa phương thức, và sau đó sử dụng dấu chấm . để gọi phương thức theo cú pháp:

let myObject = MyClass()
myObject.methodName(parameter1: value1, parameter2: value2)

Trên đây là cú pháp cơ bản để định nghĩa và gọi một phương thức trong Swift 4.

Tham số và giá trị trả về

Trong Swift 4, phương thức có thể nhận tham số đầu vào và trả về một giá trị nếu cần thiết. Tham số đầu vào được sử dụng để truyền dữ liệu vào phương thức và giá trị trả về là kết quả mà phương thức trả về sau khi hoàn thành công việc của nó. Dưới đây là chi tiết về tham số và giá trị trả về trong phương thức.

Tham số đầu vào (Parameters):

Trong khai báo phương thức, chúng ta có thể định nghĩa các tham số đầu vào bằng cách liệt kê chúng sau tên phương thức và đặt kiểu dữ liệu cho từng tham số. Cú pháp như sau:

func methodName(parameter1: Type1, parameter2: Type2) {
    // Mã thực hiện phương thức
}

Ví dụ, đây là một phương thức có hai tham số đầu vào:

func greet(name: String, age: Int) {
    print("Xin chào, tôi là \(name) và tôi \(age) tuổi.")
}

Trong ví dụ trên, nameage là hai tham số đầu vào của phương thức greet.

Giá trị trả về (Return Value):

Một phương thức có thể trả về một giá trị sau khi thực hiện xong công việc của nó. Để khai báo kiểu dữ liệu của giá trị trả về, chúng ta sử dụng từ khóa -> sau danh sách tham số và đặt kiểu dữ liệu mong muốn của giá trị trả về. Cú pháp như sau:

func methodName(parameter1: Type1, parameter2: Type2) -> ReturnType {
    // Mã thực hiện phương thức
    return value // Giá trị trả về
}

Ví dụ, đây là một phương thức trả về một giá trị kiểu Int:

func sum(a: Int, b: Int) -> Int {
    return a + b
}

Trong ví dụ trên, phương thức sum trả về tổng của hai số ab dưới dạng một giá trị kiểu Int.

Khi gọi một phương thức có giá trị trả về, chúng ta có thể sử dụng kết quả trả về đó để thực hiện các thao tác khác trong mã:

let result = sum(a: 5, b: 3)
print("Tổng là: \(result)") // Kết quả: Tổng là: 8

Trên đây là cách sử dụng tham số và giá trị trả về trong phương thức của Swift

Xem thêm Redirect là gì?

Phạm vi và truy cập phương thức

Trong Swift 4, phạm vi và truy cập phương thức xác định khả năng của các phương thức được truy cập và sử dụng trong mã của chúng ta. Dưới đây là các cấp độ phạm vi và các quyền truy cập phương thức trong Swift:

Phạm vi (Scope):

Phạm vi xác định vị trí mà một phương thức có thể được truy cập và sử dụng trong mã. Có ba cấp độ phạm vi chính trong Swift 4:

  1. Public: Các phương thức công khai (public) có thể được truy cập từ mọi nơi, bao gồm cả bên ngoài module (được sử dụng trong module hiện tại và các module khác).
  2. Internal: Các phương thức trong phạm vi nội bộ (internal) có thể được truy cập và sử dụng trong cùng một module. Đây là phạm vi mặc định khi không có từ khóa phạm vi được xác định.
  3. Private: Các phương thức riêng tư (private) chỉ có thể được truy cập và sử dụng trong cùng một tệp (file) chứa phương thức đó. Chúng không thể được truy cập từ các tệp khác trong cùng module.

Truy cập (Access):

Quyền truy cập xác định quyền hạn mà một phương thức có đối với các phần tử khác trong cùng phạm vi. Có năm quyền truy cập chính trong Swift 4:

  1. Public: Các phương thức công khai (public) có thể được truy cập và kế thừa từ bất kỳ đâu, bao gồm cả bên ngoài module.
  2. Internal: Các phương thức nội bộ (internal) có thể được truy cập và kế thừa trong cùng một module.
  3. Private: Các phương thức riêng tư (private) chỉ có thể được truy cập từ bên trong cùng một tệp chứa phương thức đó.
  4. Fileprivate: Các phương thức riêng tư trong tệp (fileprivate) có thể được truy cập từ bất kỳ đâu trong cùng một tệp.
  5. Open: Các phương thức mở (open) tương tự như public, nhưng còn cho phép kế thừa và sử dụng lại ở các module khác.

Để xác định phạm vi và quyền truy cập của phương thức, chúng ta có thể sử dụng các từ khóa public, internal, private, fileprivateopen trước khai báo phương thức.

Xem thêm Internet có nghĩa là gì?

Phương thức khởi tạo

Trong Swift 4, phương thức khởi tạo (initializer) là một phương thức đặc biệt được sử dụng để tạo ra một thể hiện (instance) của một lớp hoặc cấu trúc. Phương thức khởi tạo được gọi khi ta khởi tạo một đối tượng mới từ lớp hoặc cấu trúc đó. Dưới đây là cú pháp và các khía cạnh quan trọng về phương thức khởi tạo trong Swift:

Cú pháp phương thức khởi tạo:

Cú pháp để định nghĩa một phương thức khởi tạo trong Swift 4 như sau:

class ClassName {
    init(parameters) {
        // Mã thực hiện khởi tạo
    }
}

Trong đó:

  • init là từ khóa để định nghĩa một phương thức khởi tạo.
  • parameters là danh sách các tham số đầu vào của phương thức khởi tạo. Mỗi tham số được định nghĩa với tên và kiểu dữ liệu của nó.

Ví dụ, dưới đây là một phương thức khởi tạo đơn giản cho một lớp Person trong Swift:

class Person {
    let name: String
    let age: Int
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

Trong ví dụ trên, phương thức khởi tạo init có hai tham số nameage. Mã thực hiện gán giá trị của các tham số vào thuộc tính nameage tương ứng của lớp.

Gọi phương thức khởi tạo:

Để khởi tạo một thể hiện của lớp hoặc cấu trúc, chúng ta sử dụng cú pháp sau:

let object = ClassName(parameters)

Ví dụ, để khởi tạo một đối tượng Person:

let person = Person(name: "John", age: 25)

Trong ví dụ trên, chúng ta tạo một đối tượng person từ lớp Person với tên là “John” và tuổi là 25.

Phương thức khởi tạo tùy chọn (Optional initializer):

Trong Swift, chúng ta có thể định nghĩa phương thức khởi tạo tùy chọn (optional initializer) cho lớp hoặc cấu trúc. Phương thức khởi tạo tùy chọn cho phép ta khởi tạo một đối tượng với một tập hợp con của các tham số hoặc giá trị thuộc tính.

Cú pháp để định nghĩa một phương thức khởi tạo tùy chọn trong Swift 4 như sau:

init?(parameters) {
    // Mã thực hiện phương thức khởi tạo
    // Kiểm tra các giá trị đầu vào và trả về nil nếu không hợp lệ
}

Trong đó:

  • init là từ khóa để định nghĩa một phương thức khởi tạo.
  • parameters là danh sách các tham số đầu vào của phương thức khởi tạo. Mỗi tham số được định nghĩa với tên và kiểu dữ liệu của nó.
  • ? sau từ khóa init cho biết rằng phương thức khởi tạo có thể trả về giá trị nil.

Xem thêm Hàm khởi tạo(constructor) là gì?

Phương thức tĩnh

Trong Swift 4, phương thức tĩnh (static method) là một phương thức thuộc về lớp hoặc cấu trúc chứ không thuộc về một thể hiện cụ thể của lớp hoặc cấu trúc đó. Điều này có nghĩa là chúng ta có thể gọi phương thức tĩnh mà không cần khởi tạo một thể hiện của lớp hoặc cấu trúc đó. Dưới đây là cú pháp và các điểm quan trọng liên quan đến phương thức tĩnh trong Swift:

Cú pháp phương thức tĩnh:

Cú pháp để định nghĩa một phương thức tĩnh trong Swift 4 như sau:

class ClassName {
    static func methodName(parameters) {
        // Mã thực hiện phương thức
    }
}

Trong đó:

  • static là từ khóa để định nghĩa một phương thức tĩnh.
  • methodName là tên của phương thức tĩnh.
  • parameters là danh sách các tham số đầu vào của phương thức tĩnh. Mỗi tham số được định nghĩa với tên và kiểu dữ liệu của nó.

Ví dụ, dưới đây là một phương thức tĩnh đơn giản để tính tổng hai số:

class MathUtils {
    static func sum(a: Int, b: Int) -> Int {
        return a + b
    }
}

Trong ví dụ trên, phương thức tĩnh sum nhận hai tham số ab và trả về tổng của chúng.

Gọi phương thức tĩnh:

Để gọi phương thức tĩnh, chúng ta sử dụng tên của lớp hoặc cấu trúc, theo sau là dấu chấm . và tên của phương thức tĩnh:

ClassName.methodName(parameters)

Ví dụ, để gọi phương thức tĩnh sum của lớp MathUtils:

let result = MathUtils.sum(a: 5, b: 3)
print("Tổng là: \(result)") // Kết quả: Tổng là: 8

Trong ví dụ trên, chúng ta gọi phương thức tĩnh sum từ lớp MathUtils để tính tổng của hai số 5 và 3.

Lưu ý rằng phương thức tĩnh chỉ có thể truy cập và sử dụng các thành viên tĩnh khác của lớp hoặc cấu trúc, và không thể truy cập các thuộc tính hoặc phương thức không tĩnh.

Xem thêm Tham số hàm Swift và giá trị trả về

Phương thức nạp chồng (overloading)

Trong Swift 4, phương thức nạp chồng (method overloading) cho phép chúng ta định nghĩa nhiều phương thức có cùng tên nhưng có các tham số khác nhau. Điều này giúp cho chúng ta có thể sử dụng cùng tên phương thức để thực hiện các tác vụ khác nhau dựa trên loại và số lượng tham số đầu vào. Dưới đây là cú pháp và các điểm quan trọng về phương thức nạp chồng trong Swift:

Cú pháp phương thức nạp chồng:

Để định nghĩa một phương thức nạp chồng, chúng ta sử dụng cùng tên cho các phương thức khác nhau và khác nhau về số lượng hoặc kiểu dữ liệu của tham số đầu vào. Cú pháp như sau:

class ClassName {
    func methodName(parameter1: Type1) {
        // Mã thực hiện phương thức
    }
    
    func methodName(parameter2: Type2) {
        // Mã thực hiện phương thức
    }
}

Trong đó:

  • methodName là tên của phương thức.
  • parameter1, parameter2 là các tham số đầu vào của các phương thức khác nhau.
  • Type1, Type2 là kiểu dữ liệu tương ứng của các tham số.

Ví dụ, dưới đây là một ví dụ về phương thức nạp chồng sum trong lớp MathUtils:

class MathUtils {
    func sum(a: Int, b: Int) -> Int {
        return a + b
    }
    
    func sum(a: Double, b: Double) -> Double {
        return a + b
    }
}

Trong ví dụ trên, chúng ta có hai phương thức sum với cùng tên nhưng khác nhau về kiểu dữ liệu của tham số đầu vào. Phương thức đầu tiên nhận hai tham số kiểu Int và trả về một giá trị kiểu Int. Phương thức thứ hai nhận hai tham số kiểu Double và trả về một giá trị kiểu Double.

Gọi phương thức nạp chồng:

Khi gọi một phương thức nạp chồng, trình biên dịch sẽ dựa vào số lượng và kiểu dữ liệu của các tham số để xác định phương thức cụ thể được gọi. Chúng ta có thể gọi phương thức nạp chồng như sau:

let result1 = object.methodName(parameter1)
let result2 = object.methodName(parameter2)

Xem thêm Swift Enumerations/ Swift Enum

Phương thức mở rộng (extension)

Trong Swift 4, phương thức mở rộng (extension methods) cho phép chúng ta mở rộng chức năng của một lớp, cấu trúc, hoặc kiểu dữ liệu khác mà không cần phải sửa đổi mã nguồn ban đầu của chúng. Điều này giúp chúng ta thêm các phương thức mới vào một kiểu dữ liệu mà không cần thay đổi mã nguồn gốc của kiểu đó. Dưới đây là cú pháp và các điểm quan trọng liên quan đến phương thức mở rộng trong Swift:

Cú pháp phương thức mở rộng:

Cú pháp để định nghĩa một phương thức mở rộng trong Swift 4 như sau:

extension TypeName {
    func methodName(parameters) {
        // Mã thực hiện phương thức
    }
}

Trong đó:

  • extension là từ khóa để định nghĩa phương thức mở rộng.
  • TypeName là tên của lớp, cấu trúc, hoặc kiểu dữ liệu mà chúng ta muốn mở rộng.
  • methodName là tên của phương thức mở rộng.
  • parameters là danh sách các tham số đầu vào của phương thức mở rộng. Mỗi tham số được định nghĩa với tên và kiểu dữ liệu của nó.

Ví dụ, dưới đây là một phương thức mở rộng đơn giản để tính bình phương của một số nguyên:

extension Int {
    func squared() -> Int {
        return self * self
    }
}

Trong ví dụ trên, chúng ta đã thêm một phương thức mở rộng squared vào kiểu dữ liệu Int, cho phép chúng ta tính bình phương của một số nguyên.

Gọi phương thức mở rộng:

Sau khi đã định nghĩa phương thức mở rộng, chúng ta có thể gọi nó như một phương thức thông thường của kiểu dữ liệu đã được mở rộng. Ví dụ:

let number = 5
let squaredNumber = number.squared()
print("Bình phương của \(number) là \(squaredNumber)") // Kết quả: Bình phương của 5 là 25

Trong ví dụ trên, chúng ta gọi phương thức mở rộng squared trên một số nguyên number và lưu kết quả vào biến squaredNumber. Sau đó, chúng ta in ra kết quả bình phương của số number.

Xem thêm Các kiểu dữ liệu trong c++

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now