0

这是我的 livescript 代码:

                        if (res = json.msg.match /^iSearchup\s(.*)$/i)? then
                            getReq("[url='http://urbanscraper.herokuapp.com/define/'][http://urbanscraper.herokuapp.com/define/[/url]" + encodeURIComponent(msg.splice(1, msg.length - 1).join(" ")) + ".json", function(res, passback)
                            if (res.word && res.definition){
                                @socket.send JSON.stringify {
                                    type: \pmsg
                                    nick: 'iPoddy:'
                                    msg: json.from + ": " + res.word + " - " + res.definition
                                }
                            }
                            else {
                                @socket.send JSON.stringify {
                                    type: \pmsg
                                    nick: 'iPoddy:'
                                    msg: json.from + ":  Sorry, no results were returned."
                                }
                            }

那是我的代码。它给了我错误“dedent”,但我修复了它,它仍然再次给我那个错误。帮助?

4

1 回答 1

2

您在此代码中有几个错误。它会给你一个错误,UNEXPECTED DEDENT因为你混合了空格和制表符,而 LiveScript 是一种空格严格的编程语言。以此类推,在使用 LiveScript 时避免使用括号。还要记住,在条件结构中,例如if,您可以使用thenafter。由于以下原因,这将无法编译:

  • 混合空格和制表符
  • else带括号的关键字
  • 期待then后表达式来确定条件
  • 语法错误function(res, passback)

而且你有一些问题和不标准化的做法:

  • 使用赋值运算符=代替==|~=比较
  • 使用无效的 lambda 表达式作为参数function(res, passback)
  • 使用+连接,而不是++
  • 使用&&运算符,而不是and
  • 使用括号将单个表达式封装在第一个条件中

这应该很好用:

if res ~= json.msg.match /^iSearchup\s(.*)$/i then
    url = "[url='http://urbanscraper.herokuapp.com/define/'][http://urbanscraper.herokuapp.com/define/[/url]"
    getReq <| url ++ encodeURIComponent(msg.splice(1 msg.length - 1).join(" ")) ++ ".json"
    if res.word && res.definition then
        @socket.send <| JSON.stringify(
            type: \pmsg
            nick: 'iPoddy:'
            msg: json.from ++ ": " ++ res.word ++ " - " ++ res.definition
        )
    else
        @socket.send <| JSON.stringify (
            type: \pmsg
            nick: 'iPoddy:'
        msg: json.from ++ ":  Sorry, no results were returned."
        )
于 2014-09-30T11:39:25.113 回答