-
Notifications
You must be signed in to change notification settings - Fork 8
scala 첫걸음
myeongin edited this page Mar 21, 2016
·
6 revisions
- scala를 시작하는 가장 쉬운 방법은 인터프리터, 즉 scala 표현식과 프로그램을 쓸 수 있는 대화형 shell 을 사용하는 것이다.
- command 창에 scala 라고 입력해 shell 을 시작할 수 있다.
myeongin-ui-MBP:~ myeongin$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_25).
Type in expressions to have them evaluated.
Type :help for more information.
scala> 1 + 2
res0: Int = 3
- 1+2 와 같은 표현식을 입력하면 res0: Int = 3 이라고 인터프리터가 응답한다.
- res0은 자동으로 만들어진 결과값의 이름이며 0번째 result 라는 뜻이다.
- res0 은 식별자 로써 나중에 사용 할수 있다.
- Int는 type이며 없은 결과값은 3이다.
- Int 타입은 scala 패키지의 Int를 말한다.
- scala 의 Int는 JAVA 의 int값에 대응하지만 그와 대응하는 클래스들이 들어 있다.
- 무언가 출력을 하려면 println("hello world") 처럼 println()을 사용하면 된다.
scala> val msg = "Hello, world"
msg: String = Hello, world
- msg는 타입추론을 통해 String으로 type을 추론했다는 결과다.
scala> println(msg)
Hello, world
- var 과 val 은 모두 값을 할 당 할 수있는 변수를 의미하지만 var은 재할당이 가능하고 val은 재 할당이 불가능하다.
scala> def max(x: Int, y :Int) : Int = {
| if(x >y) x
| else y
| }
max: (x: Int, y: Int)Int
- 함수의 시작은 def 로 선언한다. 파라미터는 타입추론을 하지 않기 때문에 콜론 뒤에 타입을 선언해야 한다.
- 결과값은 타입을 지정하지 않아도 추론을 하지만 재귀적은 함수에는 결과값의 타입을 지정해줘야 한다.
scala> max(3,5)
res0: Int = 5
- 함수를 선언하면 위와같이 사용한다.
scala> def greet() = println("Hello world")
greet: ()Unit
- Unit type은 JAVA에서 void를 생각하면 된다.
- 인터 프리터를 나갈 때는 :quit나 :q 를 입력한다.
- 확장자가 .scala인 파일을 생성한다.
- scala 문법을 입력한다.
- scala를 실행한다.
myeongin-ui-MacBook-Pro:temp myeongin$ scala hello.scala
Hello world
var i = 0
while (i < args.length) {
println(args(i))
i +=1
}
- 일반적으로 scala 는 인덴테이션을 2로 사용한다.
- JAVA와 문법이 굉장히 유사하다
- scala도 세미콜론을 사용해 문장을 구분하지만 대부분의 경우 생략해도 된다.
var args = "asdfas asdf asd"
args.foreach(arg => println(arg))
scala> var args = "asdfas asdf asd"
args: String = asdfas asdf asd
scala> args.foreach(arg => println(arg))
a
s
d
f
a
s
a
s
d
f
a
s
d
- 함수형 언어의 주요 특성 중 하나는 함수가 1급 계층 요소다.