嘿,我在使用ruby解决以下问题时遇到了问题。定义更新ruby对象属性的方法
问题
编写了一个抽象的文件系统提供了更改目录(CD)功能的功能。
注:
根路径是 '/'。
路径分隔符是'/'。
父目录可寻址为'..'。
目录名称只包含英文字母(A-Z和a-z)。
例如:
路径= Path.new( '/ A/B/C/d')
提出path.cd( '../ X')的current_path
应该显示'/ a/b/c/x'。
注意:请勿使用内置的路径相关功能。
我的回答
class Path
def initialize(path)
@current_path = path
end
def current_path
@current_path
end
def cd(new_path)
if new_path.include? ".."
z = new_path.split("/")
b = @current_path
a = b.split('/')
a.shift
a.pop
@current_path = a.push(z[z.length-1]).join("/")
else
end
end
end
path = Path.new('/a/b/c/d')
path = path.cd('../x')
然而,这从 '路径' 变量返回一个对象的字符串代替。
感谢您的回答,非常感谢! –