[ruby-de] array - position eines Matches

Die Optimisten inform at die-optimisten.net
Mo Mai 22 18:03:45 JST 2017


On 2017-05-22 08:22, Robert Klemme wrote:
> 2017-05-21 22:49 GMT+02:00 Die Optimisten <inform at die-optimisten.net>:
>> On 2017-05-20 12:06, Robert Klemme wrote:
>>> 2017-05-20 0:07 GMT+02:00 Die Optimisten <inform at die-optimisten.net>:
>>>
>>>> wie bekomme ich die Array-Position eines Matches?
>>>>
>>>> arr=['abc', 'def']
>>>> arr.index /b/        # => 0 --- geht nur leider nicht!
>>> Lies doch endlich mal die Dokumentation!
>>> http://ruby-doc.org/core-2.4.1/Array.html#method-i-index
>> Eben deshalb stelle ich die Frage hier; es gibt keine (direkte) Methode
>> dazu:
> Was soll jetzt wieder "direkt" bedeuten? Du hast danach gefragt, wie
> man den Index eines Treffers bekommt und die Dokumentation hat die
> Antwort dazu.
>
>> (Nicht: arr.index 'abc', sondern /b/)
>> Geht also nur manuell mit Block.
> Was soll da manuell sein? Manuell ist, wenn man selbst die Indices zählen muss.
>
>> Hätte ja sein können, daß es dazu eine
>> Funktion gäbe (zB .find_index != .index wäre...)
>> Bei vielen anderen Methoden ist string und Regex - Eingabe möglich (analog
>> zur String-Klasse)
> Was meinst Du? Welche "vielen Methoden" gibt es denn Deiner Ansicht nach?
>
> Ciao
>
> robert
>
Hallo
Aus den Möglichkeiten von String.index "str" UND  /re/ hätte ich 
geschlossen, daß dies bei Arrays analog wäre.
(least surprise)  Das ist was ich meinte - obs noch eine "direkte" 
Methode gäbe, die ich übersehen hätte.
Ich weiß nicht, wo es mir sonst untergekommen ist, gefühlt kann man in 
den meisten Fällen strings und regex ersatzweise verwenden.

PS: das {|x,y| } geht mir auf den Geist, wohl auch weil die DE-Tastatur 
dafür ungeeignet ist. Leider kann man das nicht durch begin |x| ... end 
ersetzen. Läßt sich das irgendwie umdefinieren (im Syntaxbaum, wie auch 
immer das geht) ?
Info: und da ich nicht root bin, kann ich die Tastatur auch nicht 
umstellen. :(

Andreas



Mehr Informationen über die Mailingliste ruby-de