313 Stimmen

Ruby - Test für Array

Was ist der richtige Weg zu:

is_array("something") # => false         (or 1)

is_array(["something", "else"]) # => true  (or > 1)

oder um die Anzahl der darin enthaltenen Elemente zu ermitteln?

11voto

Lucas Jones Punkte 19251

Versuchen Sie es:

def is_array(a)
    a.class == Array
end

EDIT : Die andere Antwort ist viel besser als meine.

6voto

GuyPaddock Punkte 1577

Erwägen Sie auch die Verwendung von Array() . Von der Ruby Community Style Guide :

Verwenden Sie Array() anstelle von expliziten Array-Checks oder [*var], wenn Sie einer Variablen, die Sie als Array behandeln wollen, bei der Sie aber nicht sicher sind, dass dass es ein Array ist.

# bad
paths = [paths] unless paths.is_a? Array
paths.each { |path| do_something(path) }

# bad (always creates a new Array instance)
[*paths].each { |path| do_something(path) }

# good (and a bit more readable)
Array(paths).each { |path| do_something(path) }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X