Swift 程序添加订单金额过滤和取送件距离功能
Swift 程序添加订单金额过滤和取送件距离功能
本文将介绍如何在 Swift 程序中添加订单金额过滤功能和取送件距离功能。通过这些功能,用户可以根据订单金额筛选订单,并根据取送件距离对订单进行排序。
首先,在 Order 类中添加 amount 和 distance 属性:
class Order {
var orderID: String
var restaurant: String
var customer: String
var orderTime: Date
var amount: Double
var distance: Double
init(orderID: String, restaurant: String, customer: String, orderTime: Date, amount: Double, distance: Double) {
self.orderID = orderID
self.restaurant = restaurant
self.customer = customer
self.orderTime = orderTime
self.amount = amount
self.distance = distance
}
}
接着,在 OrderManager 类中添加过滤和排序方法:
class OrderManager {
// ...
func filterOrdersByAmount(minAmount: Double, maxAmount: Double) -> [Order] {
return orders.filter { $0.amount >= minAmount && $0.amount <= maxAmount }
}
func sortOrdersByDistance() {
orders.sort { $0.distance < $1.distance }
}
// ...
}
最后,在程序中进行测试:
let order1 = Order(orderID: '123', restaurant: 'Restaurant A', customer: 'Customer 1', orderTime: Date(), amount: 50.0, distance: 2.5)
let order2 = Order(orderID: '456', restaurant: 'Restaurant B', customer: 'Customer 2', orderTime: Date(), amount: 30.0, distance: 1.0)
let order3 = Order(orderID: '789', restaurant: 'Restaurant C', customer: 'Customer 3', orderTime: Date(), amount: 40.0, distance: 3.0)
let deliveryPerson1 = DeliveryPerson(name: 'John')
let deliveryPerson2 = DeliveryPerson(name: 'Jane')
let orderManager = OrderManager(orders: [order1, order2, order3], deliveryPersons: [deliveryPerson1, deliveryPerson2])
// Display all orders
orderManager.displayOrders()
// Filter orders by amount
let filteredOrders = orderManager.filterOrdersByAmount(minAmount: 30.0, maxAmount: 50.0)
print("\nFiltered Orders:")
for order in filteredOrders {
print('Order ID: (order.orderID)')
print('Restaurant: (order.restaurant)')
print('Customer: (order.customer)')
print('Order Time: (order.orderTime)')
print('Amount: (order.amount)')
print('Distance: (order.distance)')
}
// Sort orders by distance
orderManager.sortOrdersByDistance()
// Display all orders after sorting
print("\nSorted Orders:")
orderManager.displayOrders()
// Assign order to delivery person
orderManager.assignOrder(orderID: '789', to: deliveryPerson1)
// Display all orders after assigning order
print("\nOrders after assigning:")
orderManager.displayOrders()
这样,就可以根据订单金额进行过滤,并根据取送件距离进行排序了。
原文地址: http://www.cveoy.top/t/topic/qpoi 著作权归作者所有。请勿转载和采集!