스칼라는 Range와 List를 생성하고 다루는 유용한 도구들을 제공한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
object LearnScala {
    def main(args: Array[String]): Unit = {
        // ① to를 이용하면 1부터 10을 포함하는 Range를 생성합니다.
        val range1 = 1 to 10
        println(s"① 1 to 10 →\n\t $range1")
        
        // ② until을 이용하면 마지막 숫자를 포함하지 않는 Range를 생성합니다.    
        val range2 = 1 until 10
        println(s"② 1 until 10 →\n\t $range2")
        
        // ③ by를 이용하면 숫자를 건너 띄는 Range를 생성합니다.
        val range3 = 1 until 10 by 3
        println(s"③ 1 until 10 by 3 →\n\t $range3")
        
        // ④ toList를 통해 List로 변환합니다.
        println(s"④ range1.toList →\n\t ${range1.toList}")
        
        // ⑤ filter: 조건에 맞는것만 모으기(4 이상인것만 모으기)
        val moreThan4 = range1.filter(_ > 4)  
        println(s"⑤ range1.filter(_ > 4) →\n\t $moreThan4")
        
        // ⑥ map - 각 아이템의 값을 변경하기
        val doubleIt = range1.map(_ * 2)  
        println(s"⑥ range1.map(_ * 2) →\n\t $doubleIt")
    }
}
cs


출력 ① 1 to 10 →
Range 1 to 10
② 1 until 10 →
Range 1 until 10
③ 1 until 10 by 3 →
Range 1 until 10 by 3
④ range1.toList →
List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
⑤ range1.filter(_ > 4) →
Vector(5, 6, 7, 8, 9, 10)
⑥ range1.map(_ * 2) →
Vector(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)


스칼라는 println, printf를 쓸 수 있다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
object LearnScala {
    def main(args: Array[String]): Unit = {
        var x = 10
        var y = 1
        
        val a = 1
        val b = 2
        
        // ① println
        println("① " + x + " is bigger than " + y)  
        
        // ② 문자열 앞에 s를 쓰면 $를 쓰고 변수이름을 바로 쓸 수 있습니다.
        println(s"② $x is bigger than $y")
        
        // ③ 수식을 입력하고 싶으면 ${ }사이에 식을 넣으면 됩니다.
        println(s"③ $x + $y = ${ x + y }")
        
        // ④ printf도 사용 가능합니다.
        //java.lang.*은 자동으로 import됩니다.
        //java.lang.Math도 포함입니다.
        printf("④ Pi is %f\n",Math.PI)
        println("a = $a, b = $b")
        printf("a = %d",a)
    }
}
cs


+ Recent posts