Tôi không hiểu, tại sao eval
công trình như thế này:Ruby: eval với chuỗi suy
"123 #{456.to_s} 789" # => "123 456 789"
eval('123 #{456.to_s} 789') # => 123
Làm thế nào tôi có thể suy ra một chuỗi bên trong eval
?
Cập nhật:
Cảm ơn bạn, bạn bè. Nó đã làm việc.
Vì vậy, nếu bạn có một biến chuỗi với #{}
mà bạn muốn eval sau đó, bạn nên làm điều đó như được giải thích dưới đây:
string = '123 #{456} 789'
eval("\"" + string + "\"")
# => 123 456 789
hoặc
string = '123 #{456} 789'
eval('"' + string + '"')
# => 123 456 789
Bạn có ý nghĩa gì với "thay thế vĩ mô"? – sawa
@sawa, tôi có nghĩa là '# {}' phần, xin vui lòng, chỉnh sửa nó đúng cách, tôi chỉ không biết làm thế nào để nói nó trên tiếng Anh –
Được rồi, có lẽ bạn có nghĩa là nội suy. – sawa