什么是最紧凑的Groovy语句,它测试列表中的所有项目是否可以转换
发布时间:2020-12-14 16:21:16 所属栏目:大数据 来源:网络整理
导读:我正在寻找一个简洁的表达式来评估列表中的所有项目是Longs还是可以转换为Longs.我正在寻找一个紧凑的表达,但我更喜欢可读性而不仅仅是 code golf. 例子: assert expr([1,2,'3'])assert expr([1,'fish',3]) == falseassert expr([null]) == falseassert exp
我正在寻找一个简洁的表达式来评估列表中的所有项目是Longs还是可以转换为Longs.我正在寻找一个紧凑的表达,但我更喜欢可读性而不仅仅是
code golf.
例子: assert expr([1,2,'3']) assert expr([1,'fish',3]) == false assert expr([null]) == false assert expr([' ',17]) == false 解决方法
为了便于阅读,我会做类似的事情:
def canBeLongs(things) { things.every { try { Long.valueOf(it); true } catch (e) { false } } } assert canBeLongs([1,'3']) assert !canBeLongs([1,3]) assert !canBeLongs([null]) assert !canBeLongs([' ',17]) 对于lulz来说,这个其他解决方案非常糟糕,但它非常简洁,涵盖了所有测试用例: def f(l) { l.join() ==~ /[0-9]*/ } assert f([1,'3']) assert !f([1,3]) assert !f([null]) assert !f([' ',17]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |