【发布时间】:2020-06-28 00:05:41
【问题描述】:
我想随机播放一组Any 对象,但在当前日历日执行随机播放时,顺序应保持一致。
let myArray = [1, 2, 3, 4, 5]
print(myArray.myShuffleForDateFunction(Date()))
//output today is always e.g. [3, 5, 1, 2, 4]
//output tomorrow is always e.g. [1, 4, 5, 3, 2], etc
所以想要一些我用今天的日期播种的随机订单生成器,例如
let todayAtMidnight = Calendar.current.startOfDay(for: Date())
let secondsSince1970UntilTodayAtMidnight = todayAtMidnight.timeIntervalSince1970
我查看了shuffle(using:),但我可以将一个以我的日期作为种子的生成器传递给它,还是我可以使用其他东西?
【问题讨论】:
-
为什么不洗牌一次,如果你那天洗牌了,就不要再洗牌了?或者你的意思是世界上每个在那天洗牌的人都应该得到相同的顺序,就像一种一次性垫?
-
@matt 我想将此逻辑用于应用程序中的多个数组,因此不想跟踪每个数组的“hasBeenShuffledToday”状态
-
@matt,有趣的是你提出了世界上每个人都得到相同的想法,因为我不一定要求这样做,但如果我这样做会使分析更强大可以根据日期追溯生成排序顺序。
-
“我想对应用程序中的几个数组使用这个逻辑,所以不想跟踪每个数组的 'hasBeenShuffledToday' 状态”这听起来像是属性包装器的完美用例。
-
谢谢@sweeper,我也会调查一下
标签: arrays swift sorting date shuffle