Ruby sortメソッドでArgumentErrorになる

配列の中にnilがはいっているとsortしたときにエラーになる。

 

array = [3,1,nil,5,4]

p array.sort  #=>ArgumentError

array.delete(nil)  #=>[3,1,5,4]

p array.sort  #=>[1,3,4,5]

 

文字列の配列で空(" ")があるとき、sortすると" "は先頭にくる。

 

str = ["f","","e","c","a"]

p str.sort #=>["","a","c","e","f"]

str.delete("")

p str #=>["f","e","c","a"]

 

ruby 2.3.1