排名改变事件实现
This commit is contained in:
parent
360f07d9ae
commit
4e75282d01
|
@ -50,6 +50,13 @@ func (slf *RankingList[CompetitorID, Score]) Competitor(competitorId CompetitorI
|
||||||
} else {
|
} else {
|
||||||
slf.competitor(competitorId, score, rank, len(slf.scores)-1)
|
slf.competitor(competitorId, score, rank, len(slf.scores)-1)
|
||||||
}
|
}
|
||||||
|
if len(slf.rankChangeEventHandles) > 0 {
|
||||||
|
newRank, err := slf.GetRank(competitorId)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
slf.OnRankChangeEvent(competitorId, rank, newRank, v, score)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if slf.rankCount > 0 && len(slf.scores) >= slf.rankCount {
|
if slf.rankCount > 0 && len(slf.scores) >= slf.rankCount {
|
||||||
last := slf.scores[len(slf.scores)-1]
|
last := slf.scores[len(slf.scores)-1]
|
||||||
|
@ -58,6 +65,13 @@ func (slf *RankingList[CompetitorID, Score]) Competitor(competitorId CompetitorI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
slf.competitor(competitorId, score, 0, len(slf.scores)-1)
|
slf.competitor(competitorId, score, 0, len(slf.scores)-1)
|
||||||
|
if len(slf.rankChangeEventHandles) > 0 {
|
||||||
|
newRank, err := slf.GetRank(competitorId)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
slf.OnRankChangeEvent(competitorId, newRank, newRank, score, score)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ type RankingList[CompetitorID comparable, Score generic.Ordered] interface {
|
||||||
Clear()
|
Clear()
|
||||||
|
|
||||||
// RegRankChangeEvent 排名改变时将立即执行注册的事件处理函数
|
// RegRankChangeEvent 排名改变时将立即执行注册的事件处理函数
|
||||||
|
// - 当竞争者为新加入时,oldRank 和 oldScore 均与 newRank 和 newScore 相同
|
||||||
RegRankChangeEvent(handle RankChangeEventHandle[CompetitorID, Score])
|
RegRankChangeEvent(handle RankChangeEventHandle[CompetitorID, Score])
|
||||||
OnRankChangeEvent(competitorId CompetitorID, oldRank, newRank int, oldScore, newScore Score)
|
OnRankChangeEvent(competitorId CompetitorID, oldRank, newRank int, oldScore, newScore Score)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue