我想在Ruby中实现下面的代码,并陷入它。什么是Ruby的substr等价物?
我看过文档,但它们都处理字符串而不是对象。
PHP代码:
if (substr($new_price, -2) != '00') {
Ruby代码我想:
if new_price[-2,2] != '00'
if new_price.to_s.slice[-2,2] != '00'
编辑:
对于目前的使用情况,这只是为了检查,看是否有价格上具有小数或不,我转到这个:
if new_price.ceil != new_price
我仍然好奇如何在Ruby中正确执行此操作。
如果它是一个对象,操作上该对象的* *财产。不要依赖可能会改变的任意'to_s'实现。 – 2012-01-31 17:29:32
我以为Ruby把所有东西看作是一个对象?在PHP中,我只是称之为变量 – 2012-01-31 18:10:26
Everything *是*一个对象,包括字符串。切割任意物体是没有意义的。切一个'to_s'表示是有风险的,因为它可能会改变。如果'new_price'是一个字符串,则可以使用数组符号切片'[n1..n2]'。如果它是某种其他类型,则应该对其关心的任何部分进行操作,或者重新定义其“切片”方法和/或其[']'运算符。这两个可怕的想法,因为不传达你实际在做什么,这是获得价格的美分部分。 – 2012-01-31 18:41:31