puts @file
# {
# "0.js": "js/0.js",
# "about-page.js": "js/about-page.js",
# "img/heart.png": "img/ae985f1437f67f39c4393e31c6785970.png",
# "index-page.js": "js/index-page.js",
# "init.js": "js/init.js",
# "main.js": "js/main.js"
# }
a = "0.js"
puts a // => "0.js"
puts @file[a] // => "0.js" ????!!!???
为什么上面的代码不起作用?我希望最后一行输出"js/0.js"
而不是"0.js"
。
由于
答案 0 :(得分:1)
因为你的哈希就是这样创建的
{:"0.js"=>"js/0.js",
:"about-page.js"=>"js/about-page.js",
:"img/heart.png"=>"img/ae985f1437f67f39c4393e31c6785970.png",
:"index-page.js"=>"js/index-page.js",
:"init.js"=>"js/init.js",
:"main.js"=>"js/main.js"}
要访问它,您需要执行@file[:"0.js"]
答案 1 :(得分:0)
首先,使用JSON.parse()
然后,您的代码将正常工作。
require json
file = '{"0.js": "js/0.js","about-page.js": "js/about-page.js","img/heart.png": "img/ae985f1437f67f39c4393e31c6785970.png","index-page.js": "js/index-page.js","init.js": "js/init.js","main.js": "js/main.js"}'
file2 = JSON.parse(file)
==> {"0.js"=>"js/0.js", "about-page.js"=>"js/about-page.js", "img/heart.png"=>"img/ae985f1437f67f39c4393e31c6785970.png", "index-page.js"=>"js/index-page.js", "init.js"=>"js/init.js", "main.js"=>"js/main.js"}
a = "0.js"
puts a => "0.js"
puts file2[a] // => "js/0.js"