Scala 타입과 선언
스칼라 타입 구조
- 
Any가 모든 타입들의 최상위 타입이다.Any클래스에 euals, hashCode, toString 등의 범용 메소드가 정의되어있다.
- 
AnyVal은 값타입 (Int,Double등..),AnyRef(Java=java.lang.Object)는 참조타입을 대표한다.
- 
Java의 void의 경우Unit으로 표현된다.
스칼라 타입 캐스팅
- 
스칼라는 위와 같이 값타입에 대해서 캐스팅할 수 있다. 
- 
단방향 캐스팅이며 역방향 캐스팅은 컴파일되지 않는다. 
val x: Long = 987654321
val y: Float = x  // 9.8765434E8
val z: Long = y  // 적합하지 않음(캐스팅 불가)Nothing, Null
- Nothing은 모든 타입의 최하위 타입. 아무 값이 없음을 의미. 문서에 따르면 예외, 프로그램 종료, 무한루프와 같은 비정상 종료 신호를 보내는 용도로 사용.
- Null은 모든- AnyRef의 서브 타입. Null은 다른 JVM언어와의 상호 운용성을 위해 제공되고, 스칼라에서는 거의 사용하지 않아야한다. (대체로 Scala의- Option을 사용)
변수 선언
- var (mutable: 가변)
// var [변수 이름] = [값]
var a = 1
a = 2 // 컴파일 성공- val (immutable: 불변)
// val [변수 이름] = [값]
val a = 1
a = 2 // 컴파일 실패- 타입 선언
// [val or var] [변수 이름] : [타입] = [값] 
val a : Int = 1
var b : Int = 1
a = 2 // 컴파일 실패
b = 2 // 컴파일 성공- 익명 함수 선언
val a = (b : Int) => b + 1
a(1) // 2함수 선언
- 리턴 타입 없이 함수 선언 (타입 추론)
def test(a : Int, b : Int) { // Int를 리턴한다고 추론
	a + b
}- 리턴 타입 명시
def test(a : Int, b : Int) : Int { 
	a + b
}마치며
- 타입과 선언에 대해서 알아보았다. 선언문은 kotlin,typescript와 비슷하게 생겼다. 그래서 아마 이러한 언어들을 사용해보았다면 금방 적응할 수 있지 않을까..? 라는 생각을 한다. 본인도typescript를 사용하다가 문득 scala가 편해보였으니까.
- 다음장에서는 조건문과 반복문에 대해서 알아보도록 하겠다.
Author And Source
이 문제에 관하여(Scala 타입과 선언), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jiseok/Scala-선언저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)