/ / ako používať mod: instance_method? - rubín

ako používať mod: instance_method? - rubín

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ď č. 1

instance_methodprijí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 StringMetódy inštancie sú "some string""metódy.