2016-03-26 2 views
0

タスク: Rubyでは、Stringクラスを再度開いて、upcaseメソッドを呼び出すmy_new_methodという新しい機能を追加する必要があります。Rubyで文字列クラスを開き、.upcaseメソッドを追加する

"abc".my_new_method 

戻り

"ABC" 

私はこのコードを試みたが、試験は、前記引数の間違った数(1、0)

# Re-open String class 
class String 
    # Add the my_new_method method. 
    def my_new_method(value) 
    value.upcase 
    end 
end 

試験:

Test.expect "abc".my_new_method == "ABC" 

私は引数(値)を入れる必要はありませんが、私は前に書かれた文字列をどうやって取得するのか分かりません。

私を助けてください。前もって感謝します!

+1

Yikes!なぜ答えを選ぶのが急がれるのですか?回答をしているメンバーがいればどうなるでしょうか?未成年者がすでに授与されているため、回答を投稿しないと決定したメンバーがいる場合はどうなりますか?多くの場合、回答を選択する前に少なくとも2時間待ってください。ポイントは、急いではありません。時間があるときは、SO [faq](http://stackoverflow.com/help)を読んでください。 –

答えて

1

コアクラスを拡張することは、特にコアメソッドを書き直す場合には注意が必要な限り長くしてください。

あなたはインスタンスメソッドの中にいる時はいつでもselfそして、覚えているが、常にインスタンスを参照:

def my_special_upcase 
    self.upcase + '!' 
end 

のでselfが問題の文字列を指します。

+0

私は 'self.upcase'ではなく、' upcase'を好きです。私は明白な「自己」のようなものを知っていますが、そのように書かれていれば、「自己」は必要ではないと言わなければなりません。 –

+1

'!'は 'upcase'だけではできない特別なことをするためのものです。 'self'を含めることは、それがメソッド呼び出しであることを明確にすることです。いくつかは原則としてこれを避けるが、私はそれを気にしない。 JavaScriptは 'this'を必要とするので、それは私のために気にしません。 – tadman

関連する問題