3
我剛剛開始Ruby,並有一個初學者的問題。爲什麼當pin_number == @pin
(在display_balance
和withdraw
方法),我得到一個錯誤,但當我編輯設置pin_number == pin
,這兩種方法然後工作?原因爲什麼當布爾值未設置爲實例變量時方法運行?
在下面的方法,我有private
類pin
設置@pin = 1234
,所以我認爲應該使用@pin
而不是pin
工作過。
class Account
attr_reader :name, :balance
def initialize(name, balance=100)
@name = name
@balance = balance
end
def display_balance(pin_number)
if pin_number == @pin
puts "Balance: $#{@balance}"
else
pin_error
end
end
def withdraw(pin_number, amount)
if pin_number == @pin
@balance -= amount
puts "Withdrew #{amount}. New balance #{amount}."
else
pin_error
end
end
private
def pin
@pin = 1234
end
def pin_error
return "Access denied: incorrect PIN."
end
end
checking_account = Account.new("Rick", 1_000_000)
checking_account.display_balance(1234)
語言是「Ruby」,因爲它是語言的專有名稱。調用它是「紅寶石」。如果您打算將它作爲命令行中的命令來引用,請將其標記爲「代碼」或類似TTY的格式。如果你認爲它們是相同的,那麼爲什麼要使用「C++」和「C#」? –
@theTinMan http://stackoverflow.com/a/6053314/2700898我不是說所有語言都是這種情況,但對於ruby和perl來說,例如它是如此。 – Matt
我相信http://stackoverflow.com/a/6053302/128421。您會注意到,引用(包括引用的常見問題解答)在討論語言時都提及「Ruby」和「Perl」。 –