これを短くすることは可能ですか?
string = string.split
Rubyには!
それを実現する関数がいくつかありますが、これはどうでしょうか。
string.splitのようなものが欲しい!ただし、Stringクラスメソッドを追加しないでください
これを短くすることは可能ですか?
string = string.split
Rubyには!
それを実現する関数がいくつかありますが、これはどうでしょうか。
string.splitのようなものが欲しい!ただし、Stringクラスメソッドを追加しないでください
self
コード行で行ったことと多かれ少なかれ正確に行うクラスのメソッドを作成する必要があります。
def split_keywords!(sep = ' ')
@keywords = @keywords.split(sep)
end
これに関する問題は、 をkeywords
( aString
から an にArray
) 変更しているため、 と対話する他のすべてのメソッドを作成してkeywords
、 aString
または anのいずれであっても機能するようにする必要があることArray
です。
split!
メソッドがない理由は、メソッドString
の途中で変数をあるクラスから別のクラスに変更する必要があるためです。
# This will raise a SyntaxError
class String
def split!(sep = ' ')
self = self.split(sep) # Causes self to become an Array mid-method
end
end
したがって、あなたの質問に答えるには、いいえ、あなたがやりたいことへの近道はありませんが、心配なくaと のkeywords
両方のように振る舞うことができない限り、アプローチを再考することをお勧めします.String
Array
使用するだけ
で、クラスで使用される"key words".split
配列が得られます。["key", "words"]
keywords = "key words"
class String
def -@
self.split
end
end
p -keywords #=> ["key", "words"]
ちなみに、"[%s]" % keywords
同じ結果になることをご存知ですか?