调用Array#compact时如何删除自定义类

Lev*_*ero 2 ruby arrays

如果使用具有自定义nil类(空对象模式),则可以在调用数组时将其从数组中删除.compact.(像重写一样.nil?返回true)

例如,一个游戏板,其中空方块包含NilPieces并且board.flatten.compact仅返回非零件.

Ama*_*dan 5

不,compact是硬编码过滤掉NIL_P,它测试数据类型是否是Qnil(在C代码中,所以你无能为力).