2014-07-16 14 views
10

Tôi có một mảng của một struct và tôi muốn để có thể sắp xếp nó theo một trong hai biến sử dụng loại() nếu có thểLàm thế nào để bạn sắp xếp một mảng của cấu trúc trong nhanh chóng

struct{ 
    var deadline = 0 
    var priority = 0 
} 

tôi xem xét sắp xếp() trong tài liệu cho ngôn ngữ lập trình Swift nhưng nó chỉ hiển thị các mảng đơn giản. có thể sắp xếp() được sử dụng hoặc tôi sẽ phải xây dựng của riêng mình?

+0

có thể trùng lặp của [Swift cách sắp xếp mảng đối tượng tùy chỉnh theo giá trị thuộc tính] (http://stackoverflow.com/questions/24130026/swift-how-to-sort-array-of-custom-objects-by- giá trị tài sản) –

Trả lời

23

Sắp xếp trong cùng một mảng biến

Sắp xếp các chức năng rống lên là giống hệt nhau, sự khác biệt duy cách ngắn và biểu cảm đó là:

Full khai:

myArr.sort { (lhs: EntryStruct, rhs: EntryStruct) -> Bool in 
    // you can have additional code here 
    return lhs.deadline < rhs.deadline 
} 

khai đóng cửa rút gọn:

myArr.sort { (lhs:EntryStruct, rhs:EntryStruct) in 
    return lhs.deadline < rhs.deadline 
} 
// ... or even: 
myArr.sort { (lhs, rhs) in return lhs.deadline < rhs.deadline } 

Đóng gói nhỏ gọn laration:

myArr.sort { $0.deadline < $1.deadline } 

Sắp xếp một mảng mới biến

Full khai:

let newArr = myArr.sorted { (lhs: EntryStruct, rhs: EntryStruct) -> Bool in 
    // you can have additional code here 
    return lhs.deadline < rhs.deadline 
} 

ngắn lại tuyên bố đóng cửa:

let newArr = myArr.sorted { (lhs:EntryStruct, rhs:EntryStruct) in 
    return lhs.deadline < rhs.deadline 
} 
// ... or even: 
let newArr = myArr.sorted { (lhs, rhs) in return lhs.deadline < rhs.deadline } 

khai đóng compact:

let newArr = myArr.sorted { $0.deadline < $1.deadline } 
Các vấn đề liên quan