意外的语法错误(

问题描述:

我在一个文件1_arithmetic.rb写了下面的代码:意外的语法错误(

def arithmetic1(n) 
    (n * 5) - 20 
end 

使用宝石工具rake,我输入到控制台这样的:

rake 1_arithmetic.rb:arithmetic1(5) 

然后,我得到了一个错误消息,内容如下:

syntax error near unexpected token `(' 

有人知道我可能做错了吗?或者是问题我用的方式rake

+0

[如何将命令行参数传递给rake任务](https://stackoverflow.com/questions/825748/how-to-pass-command-line-arguments-to-a-rake-task ) – whodini9

+0

为什么你为此使用耙子?你在这里没有耙子任务(AFAICT)。使用'irb',正确地暴露方法,然后从中取出。 –

+0

欢呼声,我读了我的教程错误,它已经编程了一个耙子任务,我可以打电话 –

我相信耙子只能用于耙子任务。你可以创建一个rake任务,然后调用你的方法。

require './1_arithmetic.rb' 
task :arithmetic, [:n] => [:environment] do |t, args| 
    arithmetic1(args[:n]) 
end 

您需要调用使用

rake arithmetic[5] 

参考任务:How can I run a ruby class from rake file?

参考:How to pass command line arguments to a rake task

+2

在Ruby中如何解析? 'require'不需要'end','[n]'似乎引用一个未知的变量'n'。 '['也是一个可能被解释的shell字符,所以如果在传入参数的目录中有一个名为'arithmetic5'的文件。 – tadman

+0

@tadman快速回答它不在任何级别 – engineersmnky

+0

@engineersmnky这就是我想的。至于为什么这被接受,这是一个谜。 – tadman

如果你正在尝试做的是运行的方法,你不需要rake才能这样做,您只需使用ruby命令:

ruby -r./1_arithmetic.rb -e "puts arithmetic1(10)" 

-r选项告诉ruby命令require文件和-e选项告诉ruby运行传过来的字符串代码。

注意:发布的命令假定文件1_arithmetic.rb位于您运行命令的目录中,如果它位于其他位置,则需要将该文件路径(./1_arithmetic.rb)弄乱。