これを短くすることは可能ですか?
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両方のように振る舞うことができない限り、アプローチを再考することをお勧めします.StringArray
使用するだけ
で、クラスで使用される"key words".split配列が得られます。["key", "words"]
keywords = "key words"
class String
def -@
self.split
end
end
p -keywords #=> ["key", "words"]
ちなみに、"[%s]" % keywords同じ結果になることをご存知ですか?