意外的语法错误(
我在一个文件1_arithmetic.rb
写了下面的代码:意外的语法错误(
def arithmetic1(n)
(n * 5) - 20
end
使用宝石工具rake
,我输入到控制台这样的:
rake 1_arithmetic.rb:arithmetic1(5)
然后,我得到了一个错误消息,内容如下:
syntax error near unexpected token `('
有人知道我可能做错了吗?或者是问题我用的方式rake
?
我相信耙子只能用于耙子任务。你可以创建一个rake任务,然后调用你的方法。
require './1_arithmetic.rb'
task :arithmetic, [:n] => [:environment] do |t, args|
arithmetic1(args[:n])
end
您需要调用使用
rake arithmetic[5]
在Ruby中如何解析? 'require'不需要'end','[n]'似乎引用一个未知的变量'n'。 '['也是一个可能被解释的shell字符,所以如果在传入参数的目录中有一个名为'arithmetic5'的文件。 – tadman
@tadman快速回答它不在任何级别 – engineersmnky
@engineersmnky这就是我想的。至于为什么这被接受,这是一个谜。 – tadman
如果你正在尝试做的是运行的方法,你不需要rake
才能这样做,您只需使用ruby
命令:
ruby -r./1_arithmetic.rb -e "puts arithmetic1(10)"
的-r
选项告诉ruby
命令require
文件和-e
选项告诉ruby
运行传过来的字符串代码。
注意:发布的命令假定文件1_arithmetic.rb
位于您运行命令的目录中,如果它位于其他位置,则需要将该文件路径(./1_arithmetic.rb
)弄乱。
[如何将命令行参数传递给rake任务](https://stackoverflow.com/questions/825748/how-to-pass-command-line-arguments-to-a-rake-task ) – whodini9
为什么你为此使用耙子?你在这里没有耙子任务(AFAICT)。使用'irb',正确地暴露方法,然后从中取出。 –
欢呼声,我读了我的教程错误,它已经编程了一个耙子任务,我可以打电话 –