我是轨道上的Ruby新手。我正在从 php 迁移到红宝石。现在我有一些 php 项目正在转换为 ruby 代码。但是如何将此开关代码转换为轨道上的红宝石 4?函数 ajax($command( {
switch ($command) {
case 'page_reload':
$this->ajax_delete_entries_of_current_uid();
break;
case 'labchem_products':
$this->ajax_labchem_products();
break;
case 'labchem_carts':
$this->ajax_labchem_carts();
break;
case 'labchem_customers':
$this->ajax_labchem_customers();
break;
case 'products_selected':
$this->ajax_products_selected();
break;
case 'products_total':
$this->ajax_products_total();
break;
case 'products_delivery_info':
$this->ajax_products_delivery_info();
break;
case 'labchem_orders':
$this->ajax_labchem_orders();
break;
default: break;
}
}
case command
when 'page_reload' then ajax_delete_entries_of_current_uid()
when 'labchem_products' then ajax_labchem_products()
# or
when 'labchem_carts'
ajax_labchem_carts()
# and so on ...
end
你不需要break
.只会执行一个或不执行一个when
。如果没有匹配when
,您可以记下执行某些内容的else
。
在 ruby 中,case 将返回最后一个值,因此您可以将其保存到变量中。
result =
case command
when 'a', 'b' then 1
when 'c' then 2
when 'd'..'z' then 3
else
0
end
比较按对象类型和值 (===( 完成。
case 1
when '1' then 'a'
when 1 then 'b'
end
# => "b"
更多 ruby-doc.com 和 tutorialspoint.com。