从 Crystal 中的数组中删除空值的类型安全方法
Type-safe way to remove nulls from Array in Crystal
是否有一种首选且类型安全的方法,无需强制类型转换即可从数组中删除 nils?
[1, nil].select{|x| !!x}
// => Array(Int32 | Nil)
有点像特别的东西 select
?
P.S.
我遇到这个问题时的用例 - 我想计算 median
而 sort
不起作用:
[1, nil].select{|x| !!x}.sort
带零的映射 [1, nil].map{|x| x || 0}
将无法工作,因为不像 sum
对于某些操作,长度确实很重要(例如 median
)。
Array#compact
将从数组中删除 nils:
[1, nil].compact # => [1] (Array(Int32))
是否有一种首选且类型安全的方法,无需强制类型转换即可从数组中删除 nils?
[1, nil].select{|x| !!x}
// => Array(Int32 | Nil)
有点像特别的东西 select
?
P.S.
我遇到这个问题时的用例 - 我想计算 median
而 sort
不起作用:
[1, nil].select{|x| !!x}.sort
带零的映射 [1, nil].map{|x| x || 0}
将无法工作,因为不像 sum
对于某些操作,长度确实很重要(例如 median
)。
Array#compact
将从数组中删除 nils:
[1, nil].compact # => [1] (Array(Int32))