스칼라 썸네일형 리스트형 Scala에서 변수의 정의 스칼라에서는 변수의 선언을 2가지로 할수 있다.val 로 선언한 변수는 내용을 바꿀 수 없다.var 로 선언한 변수는 내용을 바꿀 수 있다.이 변수 선언 대해서는 아래의 코드를 참조하면서 설명하도록 하겠다.class Rectangle(val x: Double, var y: Double)define class Person val r1 = new Rectangle(15, 10)p: Rectangle = Rectangle@ad93135s r1.xres2 : Double = 15 r1.yres3 : Double = 10 r1.x = 25 //변경 불가:13: error: reassignment to valr1.x = 20 ^r1.y = 20 //변경 가능r1.y: Double = 20 x는 변경이 불가능 하지만.. 더보기 Scala에서의 파라메타(parameter)와 인자(argument) 구분법 스칼라에서 parameter와 argument 구분법. class Test { def test(strings: String*): Seq[String] = { ...def test1(x: Double, y: Double)(z: String)} test(strings: String*)에서 strings는 매개변수 또는 인자고, 괄호안에 (string: String*)는 매개변수 목록 또는 인자 목록이다. test1에서는 인자 목록이 2개이고 첫번째 인자(x: Double, y: Double)에서는 인자가 2개 들어있고(x, y), 두번째 인자에서는 인자가 1개(z: String) 들어있다. 더보기 Chapter 2. Expressions, Types, and Values 이 챕터에서는, 스칼라 프로그램의 블록들(expression, types, values)을 기본적으로 빌딩하는것을 알아 볼 것이다. 이러한 개념들을 이해하는것은 어떻게 스칼라 프로그램이 작동하는지에 대한 mental model을 빌드하는데 필수적이다. 2.1. Your First Program 스칼라 콘솔 또는 워크시트(IDE 말하는듯)에서 "Hello world!"를 입력하고 리턴을 누르거나(콘솔에서) 워크시트를 저장해라. 아래에서 이런 비슷한 반응을 볼 수 있다."Hello world!" // res: String = Hello world!이 프로그램에 관해 할 얘기가 많다. 이것은 single expression, particular a literal expression 또는 literal for .. 더보기 Chapter 1. Getting Started 시작하기 앞서, https://underscore.io/training/courses/essential-scala/ 주소에 있는 essential scala 라는 책 내용을 계속해서 업데이트 할 예정입니다. 잘못된 부분은 댓글로 알려주시면 감사하겠습니다. Chapter 1 Getting Started 이 책의 스칼라 코드의 짧은 예제들을 실행해 볼 것이다. 스칼라 실행방법에 2가지의 추천사항이 있다. 스클라 콘솔을 이용하는방법(커맨드 라인을 좋아하는 사람들한테 추천)IDE를 사용해서 스칼라를 사용함.(IDE를 사용하는사람들한테 추천) 1.1 스칼라 콘솔 셋업 http://scala-lang.org 홈페이지에 가면 스칼라 콘솔을 셋업하는법이 나와있다. 스칼라가 인스톨 되었다면, 반응형 콘솔을 실행해서 커맨.. 더보기 튜플(Tuple) 튜플(Tuple)은 두개 이상의 값을 가질 수 있는 컨테이너. 이 안에 있는 값들은 각각 다른 데이터 타입을 가질 수 있다. 먼저 튜플의 한 예제를 들어보겠다. Int Double, String 형의 값을 가지는 튜플을 생성하여 보겠습니다. scala> val test = (5, 5.5, "Test") 튜플은 이렇게 비교적 간단하게 선언할 수 있다. C언어의 Array와 달리 튜플의 순서는 1부터이다. 다른방식으로 튜플을 생성하는 방법은 키(Key)-값(Value) 형식으로 나타낼 수 있다. scala> val y1 = "y1" -> "55.55"y1: (String, String) = (y1,55.55) scala> val y2 = y1._2 -> y1._1v2: (String, String) = (5.. 더보기 스칼라(Scala) 기초 scala > println("Hello World")Hello, World scala > val test = "just Test"test: String = just Test scala > var test1 = "just Test1"test1: String = just Test1 val은 Value의 약자로 불변(immutable)의 타입을 갖는 저장 단위이다.var은 Variable의 약자로 데이터를 재할당 할 수 있다. scala > val test = "Test"error : reassignment to val test = "Test" scala > var test1 = "Test"test1: String = "Test" 리터럴(literal) : 스칼라에서 리터럴은 텍스트"Test", 234234.. 더보기 스칼라 공부 중 메모할 것들 Scala에서 패키지나 클래스에 속한 모든 함수 또는 변수들을 호출하고 싶을때는 *(asterisk) 대신 _(underscore)를 사용한다 ex) def double(x: Int): Int = x * 2val testDouble = double _ 스칼라에서는 모든것을 객체 취급 한다. ex)1 + 5 % 2 더보기 함수 타입과 값 함수의 타입은 함수의 입력 타입과 반환값 타입의 단순한 그룹으로, 입력 타입으로부터 출력 타입으로의 방향을 나타내는 화살표로 배열한다. def test(x: Int): Int = x * 2 val intest: (Int) => Int = double // val intest = double_로 나타낼 수 있다. val intestcopy = intest 더보기 List 끝에 Nil을 넣는 이유 val Test = 1 :: 2 :: 3 을 실행시켜봤더니 이런 에러가 난다. :11: error: value :: is not a member of Int val Test = 1 :: 2 :: 3 ↑ 리스트 끝에 Nil을 필요로 하는 이유는 :: 가 List 클래스의 맴버이기 때문이다. 만약 1 :: 2 :: 3만을 사용 했다면, 3이 Int라서 메소드가 없기 때문에 컴파일에 실패한다. 따라서 수정해보면val Test = 1 :: 2 :: 3 :: Nil 약간 응용을 해 보면 val Test = "I" :: "Love" :: "You" :: Nil 더보기 함수(function) def (식별자) = (표현식)def test = "Hello, World!" def function_name(function parameter): return_type = {codes...} def areaRect(x: Float, y: Float): Float = { 1 * b} val arr = Array(1, 2, 3, 4, 5) arr = Array(100, 200) 더보기 이전 1 2 다음