Donnerstag, Juni 4, 2020

Wie wandelt Fixnum in Integer in ruby

Ich versuche, Integer-zahlen, aber ich bin immer ‚Fixnum‘ Werte.

ZB:

arr = ["1", "2", "3", "4"]
arr.each do |a|
m = a.to_i
m.class.name

Result
=> Fixnum

Gemäß dem obigen Beispiel, wie kann ich Integer Werte?
Fixnum ist ein Integer-aber nur während der Implementierung einer plugin ist, wird es durch eine Fehlermeldung wie „Bitte geben Sie nur ganze Zahl‘.

  • Vielleicht möchten Sie werfen eine Frage zu dem plugin. So wie es da steht, Sie denken, Sie kennen das problem und haben nach einer Lösung gefragt, um es zu lösen, wie Sie denken, es ist gebrochen, aber es ist wahrscheinlich, dass das eigentliche Problem, dass die Erzeugung dieser Fehler ist etwas anderes (wie, vielleicht, eines der Elemente in dem array geht das plugin nicht eine Zahl wie Sie denken, es ist 🙂
InformationsquelleAutor Shruthi R | 2013-03-27

3 Kommentare

  1. 14

    In Ruby Ganzzahlen, entweder von der Klasse Fixnum oder Bignum für größere zahlen. Beide Erben von der Integer Klasse.

    So haben Sie schon eine Ganzzahl, keine Notwendigkeit, zu konvertieren es weiter.

    1.class #=> Fixnum
    1.class.superclass #=> Integer

    Konvertieren array-Elemente zu ganzen zahlen tun Sie dies:

    arr = ["1", "2", "3", "4"]
    arr.map(&:to_i) #=> [1, 2, 3, 4]
    • Aber ich erhalte eine Fehlermeldung wie „Bitte geben Sie nur integer‘
    • Können Sie uns etwas mehr Kontext?
    • wo kommt diese Fehlermeldung her?
    • ich erhalte eine Fehlermeldung wie „Bitte geben Sie nur ganze‘, dann das plugin, das Sie sagte, Sie verwenden, ist falsch.
    • es klingt wie das plugin will ein integer, Sie übergeben ein array
  2. 0

    Fixnum ist die ruby-Klasse für standard-Ganzzahlen.

    Gut um genau zu sein, der Integer-Klasse umfasst sowohl Fixnums und Bignums, aber in aller Ehrlichkeit, es gibt nichts zu tun hier.

  3. 0

    Alle Fixnum(s) sind schon Integer. Hier einige Beispiele:

    "12".to_i.class
    #=> Fixnum
    "12".to_i.integer?
    #=> true
    "12".to_i.to_int
    #=> 12

    Oben ist alles möglich-

    "12".to_i.class.superclass
    #=> Integer

Kostenlose Online-Tests