[ruby-de] Funktionen aus Array anwenden

Robert Klemme shortcutter at googlemail.com
Sa Jun 10 07:13:09 JST 2017


2017-06-09 17:10 GMT+02:00 Die Optimisten <inform at die-optimisten.net>:

> Ich habe verschiedene Methoden(Abläufe) in einem Array
> a=["upcase", "upcase.center", "downcase", ...]  oder
> b= ...array von procs(/lambdas)...  ## zB: b[1]=lambda {|x| x=x+"neu";
> x.upcase.center }
>
> Wie kann ich diese (chained!) Methoden / Programme auf einen String
> anwenden?

Meinst Du so etwas?

result = a.inject(input) {|s, m| s.send(m)}

> "abc".send a[1]    # wie geht das (richtig)?
> b[1].call ("abc")    # oder in der Art?
>
> Gibts noch andere Möglichkeiten (ohne switch)?
>
>
> Oder auch mit Parametern:    # x......string
> b=[ ..., Proc.new(n,c) { |x,n,c| (x[n].upcase.center(c) }, ...]    #
> beliebige Programme im Array
> "abcdef".myfunc(b[1], 2, 30 )    # proc, n    # ich weiß, meine Syntax ist
> nicht Ruby...

Ja, was soll das dann? Ich finde es ziemlich nebulös, was Du
eigentlich willst. Wie viele Freiheitsgrade soll das ganze denn haben?

> oder: b[1].call("abcdef", 2, 30)    # -> " C               "
>
> use case: eigens definierte Operationen(Programme) hinzufügen, ohne den Code
> ändern zu müssen.

Und wofür wird das gebraucht?

robert


-- 
[guy, jim, charlie].each {|him| remember.him do |as, often| as.you_can
- without end}
http://blog.rubybestpractices.com/


Mehr Informationen über die Mailingliste ruby-de