Urobil som malý príklad kód, aby som urobil to isté "some string".methods
používaním instance_method
:
instance_method("methods").bind("some string").call
Neviem, čo je prijímač instance_method, takže som samozrejme dostal nedefinované metódy chyby
Aký je správny spôsob použitia tejto metódy?
odpovede:
2 pre odpoveď č. 1instance_method
prijímač bude sám v akomkoľvek kontexte, v ktorom sa nachádzate. Toto je pravdepodobne chyba.
Čo si (pravdepodobne) chcú urobiť, je dať mu explicitný prijímač. V tomto prípade trieda, ktorá obsahuje metódy pre reťazce, String
trieda.
str = "some string"
meths = String.instance_method("methods").bind(str)
meths == str.method("methods") # => true
meths.call # => [:<=>, :==, :===, ...etc... ]
Vidíš? "some string"
je príkladom String
, tak String
Metódy inštancie sú "some string"
"metódy.