Latest web development tutorials

스칼라 배열

제공된 배열 스칼라 언어 중요한 데이터 구조이다 동일한 유형 각각 게이트 어레이 편집자 언어에 대해 하나의 고정 된 크기의 요소를 저장하는데 사용된다.

배열 변수의 선언 number0, 숫자 1, ..., 별도의 변수 만이 변수 번호와 같은 선언 number99은 다음 번호 [0], 숫자 [1], ..., 번호를 [사용 선언되지 않았습니다 99] 별도의 변수를 나타냅니다. 인덱스로 지정된 배열의 요소에 액세스 할 수 있습니다.

배열 인덱스 0의 첫 번째 요소는, 마지막 요소의 인덱스 요소를 뺀 수입니다.


배열을 선언

다음은 구문 스칼라 배열 선언입니다 :

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

或

var z = new Array[String](3)

배열의 길이가 3, 세 가지 요소를 저장할 수 있습니다 위의 구문, Z는 배열의 문자열 유형을 선언합니다. 우리는 다음과 같은 각각의 요소에 대한 값을 설정하고, 인덱스의 각 요소에 액세스 할 수있다 :

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

Z (2) = "구글"유사한 인덱스로 4/2을사용하여 표현의 마지막 요소의 인덱스 .

우리는 또한 다음과 같은 방법을 사용하여 배열을 정의 할 수 있습니다 :

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

다음 그림은 길이으로 myList (10), 0-9의 인덱스 값의 배열을 보여줍니다


배열을 사용한 작업

배열의 배열 요소의 종류와 크기가 결정되므로, 배열 요소를 처리 할 때, 우리는 종종 루프 기본을 사용한다.

다음 예는 배열 초기화 프로세스의 생성을 보여

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);
    
   }
}

위의 코드의 구현, 출력은 :

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

다차원 배열

배열 다차원 배열 값들은 다른 배열 될 수 있고, 다른 배열 값도 배열 될 수있다. 매트릭스 및 공동의 형태는 2 차원 어레이이다.

상기 정의 된 2 차원 어레이의 예이다 :

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

배열의 예는 배열의 세 가지 요소를 포함, 차례로 각 배열 요소는 세 개의 값이 포함되어 있습니다.

다음으로, 처리의 2 차원 어레이의 전체 예에서 보면 :

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();
      }
    
   }
}

»인스턴스를 실행

위의 코드의 구현, 출력은 :

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

배열을 병합

다음의 예는, 우리는 CONCAT () 두 개의 배열을 병합하는 방법, CONCAT을 () 메소드가 여러 배열 매개 변수를 받아 사용합니다

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 )
      }
   }
}

위의 코드의 구현, 출력은 :

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

배열 간격을 만들기

다음 예는, 우리는 넓은 범위의 어레이를 제조하기위한 범위 () 메소드를 사용한다. 기본적으로 1 단계 범위 () 메소드 마지막 매개 변수 :

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 )
      }
   }
}

위의 코드의 구현, 출력은 :

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

스칼라 배열 방법

우리가수입 Array._ 도입 패키지를 사용할 필요를 사용하기 전에 다음 표는 처리 언어 스칼라 배열을위한 중요한 방법이다.

아니오. 방법 및 설명
(1)

데프 적용 (X : T, XS : T의 *) : 배열 [T]

지정된 객체 T의 배열을 작성, T의 값은 단위, 더블, 플로트, 긴, 지능, 숯불, 짧은, 바이트, 부울 수있다.

데프 CONCAT [T] (XSS : 배열 [T] *) : 배열 [T]

배열을 병합

3

(: AnyRef, srcPos로부터 SRC 데프 복사 : 지능, 대상 : AnyRef, destPos가 : 지능, 길이 : int)를 : 단위

복사 다른 배열에 배열. 자바의 System.arraycopy에 (SRC,의 srcPos, 이명 령, destPos가, 길이)와 동일합니다.

4

데프 빈 [T] : 배열 [ T]

길이 0의 배열이 돌려줍니다

(5)

데프 반복 [T] (시작 : T, 렌 : int)를 (F : (T) => T) : 배열 [T]

어레이의 길이를 돌려 각 배열 요소가 지정된 함수의 리턴 값이다.

0의 상기 어레이의 초기 값 (3)의 길이로서는=> +1 함수 A를산출한다:

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

데프 작성 [T] (n은 INT) (ELEM => T) : 배열 [T]

배열, 첫 번째 매개 변수가 지정되고, 길이를 채우기 위해 두 번째 인수의 각 요소를 돌려줍니다.

(7)

데프 작성 [T] (N1 : 지능, N2 : INT) (ELEM => T) : 배열 [배열 [T]

첫 번째 매개 변수가 지정되어, 두 개의 배열을 반환하고, 두 번째 인수의 각 요소의 길이를 채우기 위해.

8

데프 ofDim [T] (N1 : INT) : 배열 [T]

지정된 길이의 배열을 생성

9

데프 ofDim [T] (N1 : 지능, N2 : INT) : 배열 [배열 [T]

2 차원 배열을 만들어

(10)

데프 ofDim [T] (N1 : 지능, N2 : 지능, N3 : INT) : 배열 [배열 [배열 [T]]]

입체 배열을 만들기

(11)

데프 범위 (시작 : 지능, 끝 : 지능 단계 : INT) : 배열 [지능]

각 요소 사이의 단계 증가를 지정된 범위 내에서 배열 만들기

(12)

데프 범위 (시작 : 지능, 끝 : INT) : 배열 [지능]

지정된 범위 내에서 배열 만들기

(13)

데프 집계 [T] (n은 INT) (F : (INT) => T) : 배열 [T]

어레이의 길이, 각 배열 요소가 0에서 디폴트로 지정된 함수의 리턴 값으로 반환한다.

위의 예는 세 가지 요소를 반환 :

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

(: N1 데프 [T] 표로 지능, N2 : int)를 (F : (INT, INT) => T) : 배열 [배열 [T]

지정된 길이의 2 차원 배열은, 각각의 어레이 소자는 0에서 디폴트로 지정된 함수의 리턴 값으로 반환한다.