定义更新ruby对象属性的方法

时间:2016-12-19 08:23:20

标签: ruby

嘿,我在使用ruby解决以下问题时遇到了麻烦。

问题

  

编写一个为抽象文件系统提供更改目录(cd)功能的函数。

     
    

备注:

         

根路径是' /'。

         

路径分隔符是' /'。

         

父目录可以作为' ..'。

进行寻址          

目录名称仅包含英文字母(A-Z和a-z)。

         

例如:

         

path = Path.new(' / a / b / c / d')

         

放置path.cd(' ../ x')。current_path

         

应显示' / a / b / c / x'。

         

注意:请勿使用内置路径相关功能。

  

我的回答

number = 5959
sum = 0
for digit in str(number):
    sum += int(digit)
mod = sum % 8

然而,这会返回一个字符串,而不是来自'路径的对象。变量

2 个答案:

答案 0 :(得分:2)

您需要创建一个链方法。有两种方法可以解决它。

不可变的 - 只是创建类的新实例而不是修改,例如return Path.new(calculated_path)

可变的 - 修改@current_path并在方法self的末尾返回#cd

答案 1 :(得分:0)

在您更改了对象中的@current_path后,只需返回该对象(' self')

@current_path = a.push(z[z.length-1]).join("/")
return self