嘿,我在使用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
然而,这会返回一个字符串,而不是来自'路径的对象。变量
答案 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