我有一个开关盒如下:
def result
case params[:q]
when "r4c_001"
result = "r4c"
description = "001"
end
end
Run Code Online (Sandbox Code Playgroud)
当我在内部处理单值时when,我也可以实现它:
def result
result = case params[:q]
when "r4c_001"
"r4c"
end
end
Run Code Online (Sandbox Code Playgroud)
如何为多个值执行此操作,例如:
def result
result, description = case params[:q]
when "r4c_001"
result = "r4c"
description = "001"
end
end
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助.
def result
case params[:q]
when "r4c_001"
["r4c", "001"]
end
end
Run Code Online (Sandbox Code Playgroud)
并将其用作:
result, description = result()
Run Code Online (Sandbox Code Playgroud)
旁注:在这种特殊情况下,可以更容易地实现相同的目标:
def result
params[:q].split('_') if params[:q] == "r4c_001"
end
Run Code Online (Sandbox Code Playgroud)
Sidenote2:除非params是同一个类的方法,返回一个对象的实例,响应#[],你应该params显式传递给方法:
def result(params)
case params[:q]
when "r4c_001"
["r4c", "001"]
end
end
Run Code Online (Sandbox Code Playgroud)
并将其用作:
result, description = result(params)
Run Code Online (Sandbox Code Playgroud)