Wie ist das möglich? Ich habe nicht ein neues Array ... noch m (0) hat einen Wert von 10. AND, m (1) ist eine ArrayIndexOutOfBounds Ausnahme ...Scala Array-Deklaration - nicht intuitives Ergebnis für anwenden (0)
Antwort
Array[Int](10)
erstellt ein Array mit einer Element, 10
. Überprüfen Sie es here
Dennoch sollten Sie in Scala nicht direkt auf Array-Elemente zugreifen, ohne Ausnahmen zu beachten. Ich würde es vorziehen, so etwas wie:
scala> val array = Array(10)
array: Array[Int] = Array(10)
scala> array.drop(5).headOption
res0: Option[Int] = None
für das fünfte Element zuzugreifen Instanz
* In Scala (und jeder anderen FP-Sprache) sollten Sie nicht direkt auf Array-Elemente zugreifen. * Warum sollten Sie nicht direkt auf Array-Elemente zugreifen? –
Außerdem, um sicher zu sein, können Sie nur 'array.lift (4)' auf das fünfte Element zugreifen. Ihr Code greift auf den 6. zu, da die ersten 5 gelöscht werden. –
Ja, mein Tippfehler beim Zugriff auf die 6. aber ich war mir des '.lift' nicht bewusst, danke :) – pedrorijo91
val m = Array[Int](10)
bedeutet ein Array vom Typ Int
mit einem Elemente 10
die Variable m
gebunden. m(n)
bedeutet das n-te Element von m
.
Das ist warum m(1)
gibt Ihnen ein ArrayIndexOutOfBounds, m hat nur ein Element.
Mischen Sie es mit der ungeraden Java-Syntax für Arrays? int[] m = new int[10];
Welches ist ein Array mit 10 nicht initialisierten Elementen.
Nein, ich folgte einfach einem Kurs ... also ich vermischte es nicht. Nun, hier ist der Haken, wenn das Wort new vor dem Array hinzugefügt wird, DANN, bekomme ich den gewünschten Effekt, den das Kursziel hatte, nämlich ein Array mit 10 Elementen zu deklarieren, die auf Null initialisiert sind. Scala ist komisch. – Beezer
Das liegt daran, dass 'Array (10)' alleine die Methode 'Array.apply' im Array-Objekt aufruft: http://www.scala-lang.org/api/current/#scala.Array$ und' neues Array verwenden (10) 'ruft den Konstruktor in der Klasse Array auf: http://www.scala-lang.org/api/current/#scala.Array – pedrofurla
Aber um ehrlich zu sein, habe ich nicht viele Verwendungen von' new Array' herum . In der Tat hatte sogar vergessen es existiert. – pedrofurla
- 1. umwandelnden Ergebnis für Verständnis in scala
- 2. Mysqli Ergebnis gibt immer 0
- 3. Wiederverwendung Objekt anwenden Funktionen in Scala
- 4. AutoFill für mehr als 1 REIHE anwenden sonst nicht anwenden
- 5. Drupal Ansichten: Render Null Ergebnis für Beziehung als 0
- 6. COUNT (*) nicht in Ergebnis enthalten, wenn 0 und Probleme Beitritt
- 7. Scala: Speichern Ergebnis in einer ToDf-Tabelle
- 8. Ergebnis von SQL-Abfrage ist immer 0
- 9. Negatives Ergebnis wird als „0“ gezeigt
- 10. UIATarget.setLocationWithOptions Kurs nicht anwenden
- 11. Android-Design-Stil für Schaltfläche nicht anwenden
- 12. GROUPBY - Wie Ergebnis der Logikprüfung auf alle Zeilen anwenden
- 13. Scala Numerische Init mit Konstante 0
- 14. Anwenden() Frage für Javascript
- 15. Zu viele Argumente für die Methode anwenden
- 16. Thema für KeyboardView anwenden
- 17. Spark Scala GraphX: InDegrees gibt nicht indegree für Knoten mit 0 indegree zurück
- 18. mysql_real_escape_string nicht anwenden
- 19. MongoDB - Klassenzuordnung nicht anwenden
- 20. Eckige Direktive nicht Stil anwenden
- 21. Scala für() vs für {}
- 22. scala Fall Klasse private Methode anwenden (ers Bug?)
- 23. Ergebnis nicht angezeigt, wenn großes Ergebnis
- 24. ffmpeg konnte nicht Header für Ausgabedatei # 0
- 25. Anwenden der Toleranz für vpasolve
- 26. jquery-ui nicht anwenden css
- 27. Scala Lösung für aufeinanderfolgende Produkte
- 28. Verschiedenes Ergebnis in derselben Scala und Java Funken Funktionen
- 29. Scala zwei ganzen Zahlen Teilen und ein Schwimmer Ergebnis
- 30. Spielen für Scala: Funktion gibt nicht zurück
Um ein Array der Größe 10 zu erstellen, das auf den Standardwert initialisiert wurde ('0' /' false'/'\ 0' für Primitive,' null' für Objekte), wollen Sie 'Array.ofDim [Int] (10) '. –