Phạm vi trong Swift (Có ví dụ)

Trong bài viết này, bạn sẽ tìm hiểu về phạm vi, kiểu của nó và các trường hợp sử dụng trong Swift.

Dải ô là một khoảng giá trị. Một ví dụ đơn giản về phạm vi là 0,1,2,3,4,5,6,7,8,9 bởi vì các số liên tiếp từ 0 đến 9.

Chúng tôi có thể tạo phạm vi nhanh chóng bằng cách sử dụng hai toán tử phạm vi được mô tả bên dưới:

1. Toán tử phạm vi đóng (Giới hạn dưới… Giới hạn trên)

Nó bao gồm tất cả các giá trị trong khoảng (giới hạn dưới đến giới hạn trên). Nó được khai báo bằng toán tử (3 chấm).

Vd: 1… 3 Xác định phạm vi chứa các giá trị 1,2,3

2. Toán tử Half Open Range (Giới hạn thấp hơn…

Nó bao gồm tất cả các giá trị trong khoảng (giới hạn dưới đến giới hạn trên) nhưng loại trừ số cuối cùng (giới hạn trên). Nó được khai báo bằng cách sử dụng … <toán tử.

Ví dụ: 1… <3 Xác định phạm vi chứa các giá trị 1 và 2

Các loại phạm vi

1. Phạm vi đóng (LowerBound… upperBound)

Phạm vi được tạo bằng cách sử dụng toán tử phạm vi đóng được gọi là phạm vi đóng. Nó bao gồm tất cả các giá trị từ hướng dưới đến giá trị trên.

Ví dụ 1: In các giá trị phạm vi đóng bằng vòng lặp for-in

 // 1… 3 Defines a range containing values 1, 2 and 3 for value in 1… 3 ( print(value) ) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 1 2 3 

Ví dụ trên tạo một phạm vi chứa các số từ 1 đến 3 ( 1… 3). Chúng tôi đã sử dụng vòng lặp for-in để xem phạm vi chứa những giá trị nào. Để tìm hiểu thêm về vòng lặp bổ sung, hãy truy cập Vòng lặp bổ sung của Swift.

Sử dụng vòng lặp for-in, chúng ta có thể thấy phạm vi đóng chứa tất cả các giá trị trong phạm vi đã cho bao gồm giá trị giới hạn dưới (1) và trên (3).

2. Một nửa phạm vi mở (giới hạn thấp hơn…

Các phạm vi được tạo bằng cách sử dụng toán tử phạm vi nửa mở được gọi là phạm vi nửa mở. Nó bao gồm tất cả các giá trị từ giới hạn dưới đến giới hạn trên nhưng loại trừ giá trị giới hạn trên.

Ví dụ 2: In các giá trị một nửa phạm vi mở bằng vòng lặp for-in

 // 1… <3 Defines a range containing values 1,2 for value in 1… <3 ( print(value) ) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 1 2 

Trong ví dụ trên, chúng tôi đã sử dụng vòng lặp for-in để xem cách hoạt động của dải ô nửa mở.

Thay vì in tất cả các giá trị, chúng ta có thể thấy rõ ràng bằng cách sử dụng toán tử nửa mở chỉ in 1 và 2, và nó loại trừ giá trị giới hạn trên (tức là 3).

3. Phạm vi một mặt

Phạm vi một phía là những loại phạm vi tiếp tục xa nhất có thể về một hướng. Nó có thể được tạo bằng cách sử dụng cả toán tử phạm vi nửa mở và toán tử phạm vi đóng nhưng toán tử chỉ có thể có một giá trị ở một phía.

Ví dụ 3: Phạm vi một phía nhỏ hơn 2

 let range =… <2 print(range.contains(-1)) print(range.contains(2)) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 đúng sai 

Ví dụ trên tạo phạm vi một phía bằng toán tử phạm vi nửa mở chứa bất kỳ số nào nhỏ hơn hai.

Để xác nhận kết quả của chúng tôi, chúng tôi đã sử dụng contains phương pháp. Các containsphương pháp đơn giản trả về truenếu những lời dối trá yếu tố bên trong phạm vi ngược lại trả về false.

range.contains(-1)kiểm tra xem -1 có nằm trong phạm vi hay không. Vì, phạm vi một mặt của nó với giới hạn trên 2 và -1 <2, nó nằm bên trong phạm vi và print(range.contains(-1))xuất ra truemàn hình.

However, because of half-open range operator, the upper bound value(2) does not contains inside the range. So, range.contains(2) returns false.

Example 4:One-sided range starting from 2

 let range = 2… print(range.contains(100)) print(range.contains(1)) 

When you run the program, the output will be:

 true false 

The above example creates a one sided range using closed operator that contains numbers from 2 to any values greater than 2.

range.contains(100) checks if 100 lies inside the range or not. Since, its one sided range and 100 is greater than 2, it lies inside the range and prints true in the screen.

However, it has a lower bound value (2), so range.contains(1) returns false .

Things to remember

  • Bắt đầu của một phạm vi phải nhỏ hơn hoặc bằng kết thúc của nó. Trong ví dụ của chúng tôi (lowerBound… upperBound), giá trị giới hạn dưới phải nhỏ hơn giá trị giới hạn trên. Tuy nhiên, nó có thể là một giá trị âm.
    Thí dụ:
    3… 1 // lỗi nghiêm trọng: Không thể tạo Phạm vi với upperBound <LowerBound -3… 1 // Đây là một phạm vi hợp lệ. Giới hạn dưới / Giới hạn trên có thể chứa giá trị âm nhưng phải hợp lệ với câu lệnh trên.
  • Chúng tôi có thể lặp lại trên phạm vi (không bao gồm phạm vi một phía) bằng cách sử dụng vòng lặp bổ sung.
  • Chúng ta cũng có thể sử dụng toán tử phạm vi để truy cập các phần tử của một mảng.

thú vị bài viết...