【发布时间】:2018-04-11 17:10:42
【问题描述】:
我的学长给了我一个相当奇怪的作业,如下所示。这个线程可能有点长,而且不是最好的方法,所以给这个正确的方向或者只是告诉我一个替代方案都可以。
这就是它的运作方式,这家梦幻银行有 3 种硬币和 3 种外汇可供选择。 “硬币”和“交易所”都代表结构中的基本信息。有一个称为“价格”的相互结构,稍后用于价格调用。
//Coin & Exchange:
//Exchange Struct:
struct Exchange {
let name: String
var price: Float?
var date: Date?
//Initializers:
init(name: String, price: Float?, date: Date?) {
self.name = name
self.price = price
self.date = date
}
}
//Coin Struct:
struct Coin {
let name: String
var price: Float?
var date: Date?
//Initializers:
init(name: String, price: Float?, date: Date?) {
self.name = name
self.price = price
self.date = date
}
}
//Price:
//Price Struct:
struct Price {
let name: String
var coin: [Coin]
var exchange: [Exchange]
//Initializers:
init(name: String, coin: [Coin], exchange: [Exchange]) {
self.name = name
self.coin = coin
self.exchange = exchange
}
}
这里是丑陋的部分,我应该将它们全部放在一个数组中,这也是可以接受的,但有点混乱和基本。我会尽量让它更具可读性。
let pricesTime1: [Price] =
[Price.init(name: "Coin Rate", coin:
[
Coin.init(name: "Coin 1", price: 1_200_000, date: Date()),
Coin.init(name: "Coin 2", price: 600_000, date: Date()),
Coin.init(name: "Coin 3", price: 1_230_000, date: Date())
],
exchange:
[
Exchange.init(name: "Exchange 1", price: 4_100, date: Date()),
Exchange.init(name: "Exchange 2", price: 4_800, date: Date()),
Exchange.init(name: "Exchange 3", price: 4_700, date: Date())])
]
我有 3 个“pricesTime”,它们的值相似但不同,还有一些“nil”。 这位大四学生要求我在元组中给出这些数组中每个“硬币”和“交换”值的最小值和最大值、第一个和最后一个以及日期的函数。不要介意细节或示例本身,这是为了我的问题信息,但我真的想知道如何访问/调用“Coin 1 Price”,或者按顺序比较“Exchange”的所有价格值做出一个最小和最大的答案。
【问题讨论】:
标签: arrays swift function struct