编写 Ruby 类方法并收到意外的令牌 kEND 错误

Writing a Ruby class method and getting unexpected token kEND error

提问人:Bryan Oyloe 提问时间:1/13/2021 最后编辑:Peter MortensenBryan Oyloe 更新时间:1/14/2021 访问量:1286

问:

我正在写一个类,并给它一个类方法。我收到错误。我一直在盯着代码,看不出错误可能在哪里。我想我已经把我所有的都准备好了。我错过了什么?Wrapperself.wrapunexpected end-of-inputend

require 'pry'
class Wrapper
    def self.wrap(input_string, column_number)
        position = 0
        num_inserted = 0
        while (position + column_number < line.length) do
            last_space_index = input_string.rindex(" ", position + column_number)
            if last_space_index > position - 1
                input_string[num_inserted + last_space_index] = "\n"
            else
                input_string.insert(num_inserted + position + column_number, "\n")
                position += column_number
                num_inserted ++
            end
        end
    end
end
Ruby 语法错误 意外令牌

评论

0赞 Peter Mortensen 1/14/2021
(文本)错误消息是否为“意外的令牌 kEND 错误”

答:

2赞 Tom Lord 1/13/2021 #1

Ruby 中没有 ++ 运算符

相反,您可以编写:

num_inserted = num_inserted + 1

或简称:

num_inserted += 1

诚然,您看到的错误消息非常令人困惑/误导。

但是,如果您使用具有语言感知语法高亮的 IDE(我强烈建议所有语言的所有程序员将其设置为开发的高优先级),那么这至少应该准确地突出显示导致问题的代码行。

例如,在我的本地设置中输入代码会显示以下错误:

`+' after local variable or literal is interpreted as binary operator
even though it seems like unary operator

评论

0赞 Peter Mortensen 1/14/2021
您能推荐一个IDE吗?
1赞 Tom Lord 1/14/2021
有很多文章深入讨论了您的选择,例如这个。就我个人而言,我喜欢它的速度和跨设备的可靠性,或者更增强的 GUI。归根结底,你使用什么并不重要,但如果你的编辑器没有自动为你标记上述语法错误,你就是在手铐中发展。VimVSCode