스칼라 리스트
-
[스칼라] 리스트 구현스칼라 2022. 2. 27. 00:22
Programming in scala 4th edition 22장 1. 스칼라 리스트 List는 scala.collection.immutable 내에 추상 클래스로 정의되어있다. sealed abstract class List[+A] { ... } 타입 파라미터가 +A로 선언되어있기 때문이 List는 공변적이다. 따라서 List[Int]는 List[Any] 타입의 변수에 할당할 수 있다. List에는 다음 세 가지 연산이 추상메서드로 정의되어있고 모든 리스트 연산은 세 가지 기본 메서드로 만들 수 있다. def isEmpty: Boolean def head: A def tail: List[A] 스칼라는 추상 클래스인 List를 상속받아 ::[A]와 Nil를 정의한다. Nil 객체 Nil 객체는 빈 리스트..
-
[스칼라] 리스트스칼라 2022. 2. 22. 17:37
// List(3, 4, 5) List(1, 2, 3, 4, 5) Programming in scala 4th edition 16장 1. 리스트 리터럴 val numbers = List(1, 2, 3) val tuples = List( List(1, 2), List(2, 3), List(3, 4) ) 리스트와 배열는 두가지 차이점이 있다. 리스트는 변경 불가능하다. 리스트의 원소는 할당문으로 바꿀 수 없다. 리스트의 구조는 재귀적이지만 배열은 평면적이다. 2. 리스트 타입 리스트는 같은 타입의 원소로 이루어져있다. List[T], T 타입의 원소만 가질 수 있음 또한 리스트 타입은 공변적이다. T와 서브타입 S가 있을때 List[S]도 List[T]의 서브 타입이다. 예를들어서 List[String]은 ..