我在一個文件1_arithmetic.rb
寫了下面的代碼:意外的語法錯誤(
def arithmetic1(n)
(n * 5) - 20
end
使用寶石工具rake
,我輸入到控制檯這樣的:
rake 1_arithmetic.rb:arithmetic1(5)
然後,我得到了一個錯誤消息,內容如下:
syntax error near unexpected token `('
有人知道我可能做錯了嗎?或者是問題我用的方式rake
?
我在一個文件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',正確地暴露方法,然後從中取出。 –
歡呼聲,我讀了我的教程錯誤,它已經編程了一個耙子任務,我可以打電話 –