Latest web development tutorials

serie Scala

Array lingua Scala fornita viene utilizzata per memorizzare un elementi dimensione fissa dello stesso tipo, uno per ciascuna porta Editors matrice lingua, sono importanti strutture di dati.

Dichiarazione di una variabile di matrice non è dichiarata number0, numero1, ..., number99 una variabile indipendente, ma una dichiarazione come questo numero variabile, quindi utilizzare i numeri [0], i numeri [1], ..., numeri [ 99] per rappresentare una variabile separata. Un elemento matrice specificato per l'indice si accede.

Il primo elemento di indice di matrice 0, l'indice dell'ultimo elemento è il numero di elementi meno uno.


Dichiarare una matrice

Quanto segue è la sintassi Scala dichiarazione di matrice:

var z:Array[String] = new Array[String](3)

或

var z = new Array[String](3)

La sintassi di cui sopra, z dichiarare un tipo stringa di array, la lunghezza della matrice è di 3, in grado di memorizzare tre elementi. Siamo in grado di impostare il valore per ogni elemento, e accedere a ciascun elemento in base all'indice, come segue:

z(0) = "w3big"; z(1) = "Baidu"; z(4/2) = "Google"

Indice dell'ultimo elemento nell'espressione utilizzando4/2 come indice, simile a z (2) = "Google".

Possiamo anche definire un array usando i seguenti metodi:

var z = Array("w3big", "Baidu", "Google")

La figura seguente mostra un array di lunghezza myList 10, il valore dell'indice di 0-9:


Operazioni con gli array

Tipo e dimensioni dell'elemento della matrice della matrice è determinata, in modo che quando l'elaborazione di elementi di un array, si utilizzano spesso la base per loop.

L'esempio seguente mostra la creazione di una matrice, processo di inizializzazione:

object Test {
   def main(args: Array[String]) {
      var myList = Array(1.9, 2.9, 3.4, 3.5)
      
      // 输出所有数组元素
      for ( x <- myList ) {
         println( x )
      }

      // 计算数组所有元素的总会
      var total = 0.0;
      for ( i <- 0 to (myList.length - 1)) {
         total += myList(i);
      }
      println("总和为 " + total);

      // 查找数组中的最大元素
      var max = myList(0);
      for ( i <- 1 to (myList.length - 1) ) {
         if (myList(i) > max) max = myList(i);
      }
      println("最大值为 " + max);
    
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
总和为 11.7
最大值为 3.5

array multidimensionali

A valori di matrice multidimensionali nella matrice può essere un altro array, un altro valore array può anche essere un array. Matrix e la nostra forma comune è un array bidimensionale.

Quanto sopra è un esempio di un array bidimensionale definito:

var myMatrix = ofDim[Int](3,3)

Esempi di array contiene tre elementi di un array, ogni elemento della matrice a sua volta contiene tre valori.

Avanti, guardiamo un esempio completo di un array bidimensionale di lavorazione:

import Array._

object Test {
   def main(args: Array[String]) {
      var myMatrix = ofDim[Int](3,3)
      
      // 创建矩阵
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            myMatrix(i)(j) = j;
         }
      }
      
      // 打印二维阵列
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            print(" " + myMatrix(i)(j));
         }
         println();
      }
    
   }
}

esempio »Esecuzione

L'attuazione del codice di cui sopra, l'output è:

$ scalac Test.scala
$ scala Test
0 1 2
0 1 2
0 1 2

unire serie

I seguenti esempi, usiamo concat () per unire due matrici, concat () metodo accetta parametri multipli di array:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = Array(1.9, 2.9, 3.4, 3.5)
      var myList2 = Array(8.9, 7.9, 0.4, 1.5)

      var myList3 =  concat( myList1, myList2)
      
      // 输出所有数组元素
      for ( x <- myList3 ) {
         println( x )
      }
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
8.9
7.9
0.4
1.5

Creare un intervallo di matrice

I seguenti esempi, si usa il metodo di range () per produrre la matrice entro un ampio intervallo. gamma () metodo ultimo parametro a passi di 1 per impostazione predefinita:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = range(10, 20, 2)
      var myList2 = range(10,20)

      // 输出所有数组元素
      for ( x <- myList1 ) {
         print( " " + x )
      }
      println()
      for ( x <- myList2 ) {
         print( " " + x )
      }
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ scalac Test.scala
$ scala Test
10 12 14 16 18
10 11 12 13 14 15 16 17 18 19

Metodo serie Scala

Nella tabella che segue è un metodo importante per l'elaborazione di array lingua Scala, prima di utilizzarlo è necessario usare il pacchetto introdottoimportazione Array._.

No. Metodo e Descrizione
1

applicare def (x: T, xs : T *): Array [T]

Creare un array dell'oggetto T specificato, il valore di T può essere unità, Double, Float, Lungo, Int, Char, Corto, Byte, booleano.

2

DEF concat [T] (XSS: Array [T] *): Array [T]

unire serie

3

DEF copiare (src: AnyRef, srcPos : INT, dest: AnyRef, destPos: Int, lunghezza: Int): Unità

Copie un array ad un altro array. Equivalente a System.arraycopy di Java (src, srcPos, dest, destPos, lunghezza).

4

DEF vuoto [T]: Array [ T]

Restituisce un array di lunghezza 0 è

5

DEF iterare [T] (inizio: T, len: Int) (f: (T) => T): Array [T]

Restituisce la lunghezza della matrice, ogni elemento dell'array è il valore di ritorno della funzione specificata.

Esempi di quanto sopra matrice il valore iniziale di 0 e una lunghezza di 3 per calcolare la funzione dia => a + 1:

scala> Array.iterate(0,3)(a=>a+1)
res1: Array[Int] = Array(0, 1, 2)
6

DEF riempire [T] (n: Int) (elem: => T): Array [T]

Restituisce una matrice, viene specificato il primo parametro, e ogni elemento del secondo argomento per riempire la lunghezza.

7

DEF riempire [T] (n1: Int, n2: Int) (elem: => T): Array [Array [T]]

Restituisce due array, il primo parametro è specificato, e ogni elemento del secondo argomento per riempire la lunghezza.

8

DEF ofDim [T] (n1: Int): Array [T]

Creare un array di lunghezza specificata

9

DEF ofDim [T] (n1: Int, n2: Int): Array [Array [T]]

Creazione di un array bidimensionale

10

DEF ofDim [T] (n1: Int, n2: Int, n3: Int): Array [Array [Array [T]]]

Creare una matrice tridimensionale

11

Range Def (inizio: Int, fine : Int, step: Int): Array [Int]

Creare una matrice all'interno del campo specificato, incrementi tra ogni elemento

12

Range Def (inizio: Int, fine : Int): Array [Int]

Creare una matrice all'interno del campo specificato

13

DEF tabulare [T] (n: Int) (f: (Int) => T): Array [T]

Restituisce la lunghezza della matrice, ogni elemento dell'array è il valore di ritorno della funzione specificata, da zero per default.

Gli esempi precedenti restituiscono tre elementi:

scala> Array.tabulate(3)(a => a + 5)
res0: Array[Int] = Array(5, 6, 7)
14

DEF tabulare [T] (n1: Int, n2: Int) (f: (Int, Int) => T): Array [Array [T]]

Restituisce un array bidimensionale della lunghezza specificata, ogni elemento dell'array è il valore di ritorno della funzione specificata, da zero per impostazione predefinita.