如果然后切换coffeescript

时间:2014-08-03 08:08:29

标签: coffeescript

我想实现这个

if a?
  switch a
    'hello'
  else 'hi'

如果条件不为null或未定义,如何使用switch语句链接if语句?

2 个答案:

答案 0 :(得分:1)

据我所知,您的切换语法错误。这样的东西可能就是你想要的东西:

f = (a) ->
    if a?
        switch a
            when 'bonjour'
                'hello'
            else
                'yo'
    else
        'hi'

console.log f null
console.log f 'bonjour'
console.log f 'guten tag'

产:

sh$ coffee t.coffee 
hi
hello
yo

请注意,对于else语句(表示默认情况)和switch语句,您可以关闭if。< / p>

根据您的需要,您可能希望以相反的方式编写:

f = (a) ->
    switch a
        when 'bonjour'
            'hello'
        else
            if a? then 'yo' else 'hi'

甚至完全摆脱if

f = (a) ->
    switch a
        when 'bonjour'
            'hello'
        when null, undefined
            'hi'
        else
            'yo'

答案 1 :(得分:-1)

有效。我发现我有间距错误。