Hàm toàn cục hữu dụng trong Swift

Tram Ho

zip():

Hàm zip cho phép chúng ta có thể merge 2 hay nhiều mảng vào một Sequence của một tuple. Zip rất hữu dụng chúng ta cần lặp 2 việc cùng lúc thì nếu không dùng zip chúng ta sẽ phải dùng For loop và truy cập mỗi index từ mỗi mảng, còn sử dụng zip cho phép chúng tatruy cập các element từ tất cả các mảng.
Ví dụ, nếu chúng ta có một form đăng kí người dùng và chúng ta muốn cập nhật textFields để render một danh sách kết quả validation nhận từ backend, thường chúng ta sẽ làm như này:

Còn với zip thì

dump():

Hàm dump dùng để in ra các đối tượng. Trong khi để in các đối tượng thì chúng ta dùng các syntax như description hay debugDescription, dump sẽ in nội dung của đối tượng sử dụng sự phản chiếu, cho kết quả đầu đủ hơn bao gồm cả các cấp của đối tượng đó

sequence()

Hàm sequence() để chúng ta viết hàm đệ quy trong một syntax đẹp hơn.
Giả sử chúng ta thay đổi màu nền của một subvuew và tất cả view cha của nó, có lẽ chúng ta sẽ sử dụng while loop như thế này:

Trong trường hợp này thì cách sủ dụng hiệu quả nhất là dùng sequence(), như khía cạnh của phương thức (currentView = currentView?.superview) luôn như nhau, chúng ta có thể sử dụng sequence() vào một vòng for loop như sau:

repeatElement()
Với một đối tượng và con số được cho, kết quả là một Sequence có thể được lặp đối tượng đó với số lần được cho.

Hầu hết cá kiểu liệu đều có khởi tạo đặc biệt như sau:

Vậy tạo sao chúng ta sử dụng repeatElement? Lý do là vì hiệu suất. Kiểu trả về của repeatElement() là một kiểu Sequence Repeated<T>, nghĩa là nó không làm gì ngoài việc cung cấp chức năng lặp. Giả sử chúng ta muốn hay thế một phần cụ thể mảng số với một số khác, một cách để thực hiện được việc này là sử dụng replaceSubrange với mảng khác:

Việc sử dụng[Int](repeating:) kèm theo với nó là phải khởi tạo một mảng buffer ko làm gì. Nếu bạn chỉ cần chức năng lặp thì sử dụng repeatElement sẽ có hiệu suất tốt hơn.

stride():

stride() là hàm được thêm vào Swift như một cách tạo vòng lập for để có thể bỏ qua các element nhất định:

Giờ chúng ta có thể sử dụng stride để đạt được mục đích như đoạn code trên:

Đây là cách chúng ta có thể thêm khái niệm “những ngày khác biệt” vào đối tượng Date để chúng ta có thể sử dụng stride(): (trên thực tế thì Date() đã cài đặt phương thức Strideable)

Những hàm toàn cục khác như:
max(): Trả về giá trị lớn nhất của đối số.
min(): Trả về giá trị nhỏ nhất của đối số.
abs(): Trả về giá trị tuyệt đối của đối số.

Reference: https://swiftrocks.com/useful-global-swift-functions

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo