// 現状のlastのセッター側を「あえて」実装する場合の、論理的に最も素直な実装
extension Array {
var myLast: Element? {
get {
// 空ならnilを返す
return count == 0 ? nil : self[count - 1]
}
set {
if let newValue = newValue {
self[count - 1] = newValue
} else {
// nil なら配列を空にする
self.removeAll()
}
}
}
}