스칼라는 JVM의 성능과 최적화를 활용함자바를 중심으로 구축된 라이브러리와 도구를 사용 가능스칼라는 정적 타입 언어로 튼튼한 애플리케이션을 만들 수 있다.정적 타입 언어는 컴파일 시 타입에 대한 정보를 결정한다.타입 추론을 사용하여 귀찮고 불필요한 타입 표기를 생략할
scalal에서는 변수를 정의할 때 var와 val을 사용한다.val로 선언한 경우 변경이 불가능하다.변수가 힙에 할당되며 다른 값으로 재할당 할 수 없다.하지만 배열의 원소는 변경이 가능하다.val은 반드시 선언 시 초기화 해야한다.val과 다르게 재할당이 가능하지만
부분 함수란 함수가 모든 가능한 입력에 대해 결과를 정의하지 않는다는 뜻이다.지정한 케이스 절에서 어느 하나와 일치하는 입력에 대해서만 결과를 정의한다.pf1은 String이 주어지지 않은면 실패한다.pf2는 Double이 주어지지 않으면 실패한다.pf3는 String
이름 붙은 인자를 사용하면 메서드를 사용하는 코드를 더 읽기 쉽게 만들 수 있다.인자 목록이 너무 길어지지 않게 주의하여 사용한다.draw 메소드는 두 인자를 갖는 인자 목록을 하나만 갖는것이 아닌 하나의 인자를 갖는 인자 목록 두개를 갖고 있다. 원하는 만큼 인자 목
내포된 메서드의 예를 보자. fact() 함수가 내포된 메서드이다.
언제 타입을 표기해야할까? 변경 가능한 var나 변경 불가능한 val 선언에서 값을 대입하지 않는 경우 ex) val book: String 과 같이 클래스 안에서 추상값을 선언하는 경우 모든 메서드 매개변수 ex) def deposit(amount: Mon
Option은 서브타입이 둘뿐이다. Some과 NoneOption에는 더 이상의 서브 타입이 존재하지 않는다.Option은 sealed를 사용하여 사용자가 자신만의 서브 클래스를 만들지 못하도록 방지한다.sealed 키워드는 모든 서브클래스가 같은 소스 파일 안에 선언
java와 별 다를게 없어 보인다.스칼라는 문장이 값을 결과로 돌려주는 식이다.if 식의 결과 값을 다른 변수에 저장할 수 있다.configFilePath는 설정 파일이 존재하지 않는 경우를 내부에서 처리하고 절대 경로를 돌려주는 if문이다.3항 조건식은 중복 기능이므
for 내장(comprehension) 또는 for 식(expression)이라고 부른다.dobBreeds 리스트의 모든 원소에 대해 값을 저장할 breed라는 임시 변수를 만들고 출력한다는 코드이다.