2014년 3월 25일 화요일

[일기] Scala 확인 내역 보고.

[http://scala-lang.org/download/]에서 설치파일 받고 실행하는 것으로 설치 끝.
물론, 환경변수 PATH를 변경해야 했다.

윈도우 명령줄 창에서 'scala'를 입력하였다.



[그림 1]

8 x 5 + 2 를 수행하고 싶어졌다. 타이머가 8분 52초를 지나고 있었다.


[그림 2]

결과 42라는게 보였다.

 답은 변수 'res0'에 저장되며, 이를 입력으로 사용할 수 있었다.



[그림 3]

또한 다음과 같이 입력한 내용에도 오류 없이 결과가 나왔다.


[그림 4]

 결과가 나타내듯, 우리는 결과 자료의 타입도 함께 볼 수 있었다. 가령 Int, Double, String이 그것이다.

 뿐만 아니라 메서드도 사용할 수 있었다. 검색 결과 무난하게 toCharArray, toLowerCase, toString, toUpperCase가 있었다.

 먼저, res2에 '.'을 찍어 구분한 뒤, 'to'까지만 입력 후 탭 키를 눌렀다.


[그림 5]

가능한 메서드 목록이 뜬다. 다음은 수행 결과이다.


[그림 6]

 메서드에 괄호'()'를 입력하지 않았는데도 결과는 출력되었다. 철자 하나 잘못 썼더니 에러를 내었고 틀린 문자위치를 표현해 주었다. 
 위 메서드를 검색한 사이트에서 살펴본 결과, 비록 스칼라 프로그램이 명령을 받아 처리하는 것으로 보아 인터프리터로 보일 수 있다고 하였는데, 사실은 아니라고 한다. 장면 뒤에서 사용자의 입력이 즉시 바이트 코드로 컴파일되고 그 후 그 바이트코드가 자바 가상 머신에서 동작하는 방식으로 실행된다고 하였다. ('참고 : 내 컴퓨터가 문제인지 첫 문장 수행 때 시간이 좀 걸렸다.')

 변수 선언. 키워드는 2개가 존재한다.

 첫째, val


[그림 7]

 변수 하나 선언하려다 애 먹었다. 먼저, 맨 처음 변수명을 잘못 적어 취소하려 했더니 되지 않는다. 그냥 엔터를 누르니 '이어 적기'가 자동으로 수행되었다.

 두 번째는 '='가 오지 않았으니 처리하라고 불평하고 있는 내용이다.

 세 번째는 일부로 나누어 썼다. 결과 타입은 Int로 값은 42로 들어갔다(물론 변수명 또 틀렸는데 귀찮아서..).

 주의할 것은 우리는 변수의 타입을 지정하지 않았다는 것이다. 이 타입은 값이 초기화될 때 정해지며 변수는 선언과 동시에 반드시 초기화되어야 하므로 타입이 판단되지 않는 일은 없을 거라 생각한다.

 이 변수를 참조하여 표현을 만들 수 있다.



[그림 8]
 값이 21.0인 실수형 값이 나왔다.

 물론 타입을 직접 명시하는 것도 가능하다.


[그림 9]

타입을 'Any'로 지정하기도 했는데 사실 무의미하다. 콜론(':')으로 타입을 구분한다.
자바의 String specifyVariable = null 의 방식과 차이가 있다.

val 키워드를 이용하여 선언된 변수는 사실 '상수'이다.


[그림 A]

바꾸려 하니까 뭐라한다.
변수를 지정하기 위한, 그리고 아직 언급 안했던 키워드는 'var'이다.



[그림 B]

위쪽 에러는 초기화가 반드시 필요하다는 것이 증명된 부분이다.
그 외에는 변수에 값을 재할당해도 문제가 없음을 알 수 있다.

동시에 다수의 선언을 포함하는 것 또한 가능하다.


[그림 C]

이상. 왜 심심할 때 찾아보라고 하셨는지 이해가 된다.

댓글 없음:

댓글 쓰기