Lua 中 table.sort 的比較函數

來源:互聯網
上載者:User

對 table.sort 的比較函數的理解不到位,結果把我害慘了T T

 

Lua 5.1 手冊裡是這麼寫的:

 

table.sort (table [, comp])

 

Sorts table elements in a given order, in-place, from table[1] to table[n], where n is the length of the table. If comp is given, then it must be a function that receives two table elements, and returns true when the first is less than the second (so that not comp(a[i+1],a[i]) will be true after the sort). If comp is not given, then the standard Lua operator < is used instead.

 

The sort algorithm is not stable; that is, elements considered equal by the given order may have their relative positions changed by the sort.

 

文中說:returns true when the first is less than the second

 

那如果兩個參數相等應該返回什嗎?false!

 

關鍵就是這個,必須返回 false,否則排序的結果不正確。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.