第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Kotlin sortBy() 似乎以相反的順序運行?

為什么 Kotlin sortBy() 似乎以相反的順序運行?

慕俠2389804 2022-12-28 16:07:32
當(dāng)我執(zhí)行:val array = arrayListOf<String?>(null, "hello", null)array.sortBy { it == null }println(array)我希望它會null首先打印值,因為這是我指定的選擇器。但是,println(array)返回[hello, null, null].為什么是這樣?
查看完整描述

2 回答

?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗 獲得超5個贊

表達(dá)方式:

it == null

返回Boolean結(jié)果truefalse,這就是您用來對數(shù)組進(jìn)行排序的結(jié)果。
該值true大于false,您可以通過執(zhí)行:

println(false < true)

這將打印

true

使用您的代碼:

array.sortBy { it == null }

對于表達(dá)式it == null返回的每個項目,false它將被放置在它將返回的任何項目之前true
所以反其道而行之:

array.sortBy { it != null }

結(jié)果:

[null, null, hello]


查看完整回答
反對 回復(fù) 2022-12-28
?
拉丁的傳說

TA貢獻(xiàn)1789條經(jīng)驗 獲得超8個贊

請記住,對每個對象sortBy執(zhí)行您指定的轉(zhuǎn)換,然后按轉(zhuǎn)換對象的自然順序排序。

您將對象轉(zhuǎn)換為真值(如果對象為空)和假值(如果對象不為空)。這是您轉(zhuǎn)換后的數(shù)組列表:

true false true

這將根據(jù)布爾值的自然順序進(jìn)行排序,即 false 在前,因此第二個元素將與第一個元素交換,從而產(chǎn)生結(jié)果。

要達(dá)到您想要的結(jié)果,請使用{ it != null }.



查看完整回答
反對 回復(fù) 2022-12-28
  • 2 回答
  • 0 關(guān)注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號