CoffeeScript中的语句时遇到多个条件

问题描述 投票:0回答:1

[在芬兰,就像在许多国家一样,我们用不同的名字来命名天。

[我正在尝试编写一个Ubersicht应用程序以显示一年中的那天以及那天的名称。

[我带来了年中的天(%j)和年(%Y),将它们分开以便可以操纵它们,并发现a way在CoffeeScript中找到a年。

但是,由于leap年多了一天,因此2月29日不是一个命名日(以及1月1日和12月25日),所以我想显示“今天没有名称!”在那些日子里,无论是不是a年。

command: "date +%j,%Y"  

update: (output) ->
  dateString = output.split(',')

  yearday = parseInt(dateString[0])
  year = dateString[1]

  leapyear = (year % 400 == 0) or (year % 4 == 0 && year % 100 != 0)


  # The Switch statement
  yearday = switch
      when (leapyear and yearday is [1, 60, 360]) then "No names today!"
      else 
        when yearday is 2 then " Aapeli "
        when yearday is 3 then " Elmer, Elmo "
        when yearday is 4 then " Ruut "

        ... and so on

我遇到的问题是我收到了ParseError: 'unexpected when'

我对构建小部件还很陌生(我知道如何在Python中做到这一点,并且我的switch语句遇到了一些困难。

[我也曾尝试输入月份(%d)和月份号(%e),但在那里我遇到了类似的问题(当条件为月份= 3且日期= 5(5月5日)时会成倍增加)无法正常工作。

任何帮助将不胜感激。正如我所说,我是CoffeeScript的新手,所以也将不胜感激。

coffeescript
1个回答
0
投票

您可能想重读switch syntax

switch

但是,更简单的解决方案是使用数组。(这与Coffeescript不太相关,但通常适用于编程方面的思考。)

# your code
yearday = switch # <missing switch on what here>
  when (leapyear and yearday is [1, 60, 360]) then "No names today!"
  else # again wrong syntax, can't when inside else
    when yearday is 2 then " Aapeli " # 'yearday is' is superfluous

# corrected
yearday = switch leapyear
  when 2 then 'Aapeli'
  when 3
    if additional_conditionals then A else B
  when 4 then 'Ruut'

(顺便说一句,请删除有关芬兰日的其他信息,这是无关紧要的。。]

欢呼:)

© www.soinside.com 2019 - 2024. All rights reserved.