Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

454 Lượt xem 0 Bình luận
Trong Swift, sử dụng từ khóa enum để định nghĩa một tập hợp có số phần tử cố định và liệt kê sẵn, bạn không thể thêm hoặc bớt số phần tử. Ví dụ bạn có thể định nghĩa ra một tập hợp các ngày trong tuần (Thứ 2, thứ 3,... , chủ nhật).
Nếu không có enum, để có một tập hợp các ngày trong tuần, bạn có thể định nghĩa ra 7 hằng số đại diện cho các ngày trong tuần.
WeekDayConstants.swift
?
import Foundation
 
 
 
// Định nghĩa ra 7 hằng số, đại diện cho các ngày trong tuần.
 
 
let CONST_MONDAY = 2;
let CONST_TUESDAY = 3;
let CONST_WEDNESDAY = 4;
let CONST_THURSDAY = 5;
 
let CONST_FRIDAY = 6;
let CONST_ATURDAY = 7;
let CONST_SUNDAY = 1;

Một hàm mô phỏng lấy ra tên công việc sẽ làm ứng với ngày cụ thể trong tuần. (Giống kiểu thời khóa biểu)
GetJobByDay.swift
?
import Foundation
 
// Tham số truyền vào là ngày trong tuần.
// Trả về tên công việc sẽ làm.
 
func getJobByDay(dayInWeek: Int) -> String {
  
   if (dayInWeek == CONST_SATURDAY
       || dayInWeek == CONST_SUNDAY) {
       return "Nothing";
   }
   return "Coding";
  
}

Có thể nhận thấy rằng việc code như trên mang tính không an toàn. Chẳng hạn như khi bạn gõ các giá trị cho ngày trong tuần chẳng may trùng nhau. Hoặc gọi hàm getJobByDay(Int) mà truyền vào giá trị nằm ngoài các giá trị định nghĩa trước.
Không phải là kiểu an toàn: Đầu tiên thấy rằng nó là kiểu không an toàn, bạn có thể gọi method getJobByDay(Int) và truyền vào bất kỳ giá trị Int nào.
Không có ý nghĩa trong in ấn: Nếu bạn muốn in ra các ngày trong tuần nó sẽ là các con số,thay vì một chữ có ý nghĩa như "MONDAY". 

Và đây là cách bạn tạo enum, một tập hợp đặc biệt.
WeekDay.swift
?
import Foundation
 
// Định nghĩa Enum WeekDay, một tập hợp đặc biệt.
enum WeekDay
{
   // Các phần tử
   case MONDAY
   case TUESDAY
   case WEDNESDAY
   case THURSDAY
   case FRIDAY
   case SATURDAY
   case SUNDAY
  
}

Ví dụ sử dụng Enum:
WeekDayTest.swift
?
import Foundation
 
// Tham số truyền vào là ngày trong tuần.
// Trả về tên công việc sẽ làm.
func getJob(weekDay: WeekDay) -> String  {
  
   if (weekDay == WeekDay.SATURDAY || weekDay == WeekDay.SUNDAY) {
      
       return "Nothing"
      
   }
   return "Coding"
  
}
 
func test_getJob()   {
  
   var weekDay = WeekDay.TUESDAY
  
   print("Day = \(weekDay)")
  
   var job = getJob(weekDay)
  
   print("Job = \(job)")
  
Nội dung bình luận
Unknown user
No responses yet