Chapter 1. Getting Started
시작하기 앞서, https://underscore.io/training/courses/essential-scala/ 주소에 있는 essential scala 라는 책 내용을 계속해서 업데이트 할 예정입니다.
잘못된 부분은 댓글로 알려주시면 감사하겠습니다.
Chapter 1
Getting Started
이 책의 스칼라 코드의 짧은 예제들을 실행해 볼 것이다. 스칼라 실행방법에 2가지의 추천사항이 있다.
- 스클라 콘솔을 이용하는방법(커맨드 라인을 좋아하는 사람들한테 추천)
- IDE를 사용해서 스칼라를 사용함.(IDE를 사용하는사람들한테 추천)
http://scala-lang.org 홈페이지에 가면 스칼라 콘솔을 셋업하는법이 나와있다. 스칼라가 인스톨 되었다면, 반응형 콘솔을 실행해서 커맨드라인에 타이핑 할 수 있다. OS X의 예를 들어보겠다:
test@test ~> scala Welcome to Scala version 2.11.11 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_80). Type in expressions to have them evaluated. Type :help for more information. scala>
프롬프트에 명령어를 입력시켜서 컴파일하고 실행할 수 있다:
scala> "Hello world!" res0: String = Hello wrold!
1.1.1 Entering Single-Line Expressions
싱글 표현을 입력해보자
scala> 1 + 2 + 3 res1: Int = 6
우리가 엔터를 치면, 콘솔은 세가지에 반응이 있을 것이다.
- 식별자 res1; (an identifier res1)
- Int형 타입 (a type Int)
- 값 6 (a value 6)
다음챕터에서 알게되겠지만, 스칼라에서 모든 표현은 타입(type)과 값(value)으로 된다. 타입(type)은 컴파일 타임에 결정되고 값(value)은 expression을 실행할 때 결정된다.
식별자 res1은 추후의 표현식(expression)에 사용될 수 있고, 이러한 과정을 콘솔에 쉽게 제공한다.
아래의 예제를 보고 이해해보자.
scala> res1 * 2("Hello world!") res2: Int = 12
표현식에 옳바르지 않은 값을 입력하면, 콘솔은 응답하지 않을 것이다.
scala> println("Hello world!") Hello world!
Hello world!는 println 명령(statement)의 출력(output)이다.- 이 표현식은 리턴값을 입력할 수 없다. 위에서 res1 처럼 println명령은 출력값을 변경할 수 없다.
1.1.2 Entering Multi-Line Expressions
콘솔에서는 매우 간단하게 긴 라인의 표현식을 나눌 수 있다. 이전에는 표현식에서 엔터를 치면 종료되었지만, 콘솔에서 | 가 나타내어져있으면 계속해서 라인을 입력할 수 있다.
scala> for(i <- 1 to 3) { | println(i) | } 1 2 3
보통 많은 표현식을 한번에 입력하길 원한다. 이 경우에는 :paste 커맨드를 사용하면 된다. 간단하게 콘솔에 :paste를 입력해서 엔터를 치고, 코드를 입력하면 자동으로 복사가 된다. 코드를 다 입력했다면 Ctrl + D(컨트롤+D)를 누르면 평소처럼 코드가 컴파일되고 실행한다
scala> :paste // Entering paste mode (ctrl-D to finish) val x = 1 val y = 2 x + y // Exiting paste mode, now interpreting. x: Int = 1 y: Int = 2 res6: Int = 3
스칼라 코드 파일을 가지고 있다면, 파일의 코드를 :paste명령어를 입력해서 콘솔에 입력할 수 있다. 이것은 표현식을 콘솔에 입력하는데 매우 편리하다. 예를들어, 파일이름이 example.txt이고 1 + 2 + 3 을 갖고있다면(파일의 출력이 1 + 2 + 3 이라는듯) :paste명령어를 사용하면:
scala> :paste example.scala Pasting file example.scala... res0: Int = 6
이렇게 출력될 것이다.
1.1.3 Printing the Type of an Expression
콘솔을 사용하는데 한가지 팁을 주자면. 가끔 표현식의 타입을 실행없이 알고싶을때 :type 커맨드를 입력하면 알수있다.
scala> :type println("Hello world!") Unit
이 표현식은 콘솔에서 println문을 실행하지 않는다. 이것은 간단한 컴파일과 타입을 표현해준다.
Unit은 Java와 C에서 void와 같다.
IDE설치법은 각자 다를 수 있으므로 생략하겠습니다. 필요하신분들은 맨 위 링크 참조해서 파일 다운 후 읽으세용
1.2 SETTING UP SCALA IDE
IDE왼편에 어떤 표현식이든 추가가 가능하고 평가되며(실행할 수 있으며), 출력할 수 있다. 이것을 입증하기 위해 편집기의 텍스트를 아래처럼 바꿔라.
object FirstSteps { println("Welcome to the Scala worksheet") 1 + 1 if(20 > 10) "left" else "right" println("The ultimate answer is " + 42) }
프로젝트 파일을 세이브해라. 이클립스는 자동으로 코드의 라인을 평가할 것이고 에디터 오른쪽의 결과는 출력된다.
object FirstSteps { println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet 1 + 1 //> res0: Int(2) = 2 if(20 > 10) "left" else "right" //> res1: String = left println("The ultimate answer is " + 42) //> The ultimate answer is 42 }
앞으로의 과정을 진행하면서 모든 텍스트가 의미하는 바를 알게 될 것이다.