10

这样做很好:

q = case period_group
  when 'day' then [7, 'D'] 
  when 'week' then [7, 'WW'] 
  else ['12','MM']
end
limit,pattern = q[0],q[1]

但我的第一次尝试:

limit, pattern = case period_group
  when 'day' then 7, 'D' 
  when 'week' then 7, 'WW' 
  else '12','MM'
end

最终出现 SyntaxError:

syntax error, unexpected ',', expecting keyword_end
      when 'day' then 7, 'D' 

我错过了什么吗?

4

2 回答 2

22

您应该为此返回数组。否则会混淆解析器。

limit, pattern = case period_group
  when 'day' then [7, 'D'] 
  when 'week' then [7, 'WW'] 
  else ['12','MM']
end

我不明白你为什么要去掉方括号。这种方式更具可读性。

于 2012-09-07T08:44:03.997 回答
3

您忘记将返回值放入 []

limit, pattern = case period_group
  when 'day' then [7, 'D']     
  when 'week' then [7, 'WW']     
  else ['12','MM']    
end  
于 2012-09-07T08:44:28.773 回答