개요scala는 특정 패턴을 검사할 수 있는 패턴 매칭 문법을 제공한다. 패턴 매칭이란 어떤 변수 또는 조건식이 만족하는 경우의 수에 따라 다르게 동작하도록 하는 것을 말한다.match는 C++의 switch와 비슷하지만 훨씬 강력한 기능을 제공하며 이를 통해 더 추상적고 간결한 코드를 작성할 수 있다. match기본적인 match문법의 구조는 다음과 같다. [matching object] match { case [case] => [do code] case [case 2] => [do code] ... } scala는 위 문장에서 match object에 대해 일치하는 case를 순서대로 검사하다가 조건에 맞는 case를 만나면 해당 코드를 실행하고 match문을 탈출한다.case로 검사할 수 있는 방법..
개요scala는 함수형 언어이며 모든 것이 함수로 되어있다. 예를들면 1 + 2라는 연산은 1이 +라는 함수를 호출해서 2를 파라미터로 넘겨준다는 의미를 가지고 있는 것이다.// 1.+(2) 정도로 표현할 수 있겠다.scala에 어떤 종류의 함수들이 있고, 그 함수를 어떻게 사용하는지 알아보자. 기본 함수 정의기본적으로 사용자 함수를 만들기 위한 형식은 다음과 같다. def [func id]([param id]: [type], …): [type] = { [function] } 위 형식에서 함수 내용이 한줄 정도로 짧다면 {}를 생략할 수 있고, 반환 자료형을 명시하지 않아도 scala 컴파일러가 반환되는 값으로 자료형을 추론하기 때문에 문제가 되지 않는다.scala는 함수를 정의할 때 그 함수가 하나의 ..
개요scala의 변수는 우리가 흔히 생각하는 변수와 개념으로 사용하는 변수(var)와 변하지 않는 값을 의미하는 값(val)이 있다. 그중에서 scala는 값(val)사용을 지향하는 편이다.값(이하 val)은 선언과 동시에 초기화 할 때만 값이 정해지며 이후에 수정하려고 하면 컴파일 에러를 발생시켜, 코딩 단계에서 버그 발생 확률을 낮출 수 있다는 장점이 있다. 개념만 봤을 때 C++의 const 변수와 같다고 할 수 있다. 다만 하나의 함수에서 너무 많은 변환이 필요하다면 메모리를 고려하여 변수(이하 var)를 사용할 수도 있다. 또한 구조상 억지로 val을 사용하려고 했을 때 코드가 오히려 더 복잡해지는 경우에 제한적으로 var를 사용할 수 있다. 어디까지나 val을 지향하고 var를 지양 할 뿐 강..
Listscala에서 지원하는 collection중 하나로 연결 리스트를 생성하고 관리할 수 있다. List 생성scala는 List를 생성하는 여러 방법을 제공한다.일반적으로 List를 생성하는 코드는 다음과 같다. val numbers = List(1, 2, 3, 4, 5) 다음은 scala에서 정의한 ::연산자를 이용해 List를 생성하는 코드이다. val numbers = 1 :: 2 :: 3 :: 4 :: 5 :: Nil scala 문법이 그냥 이렇게 생겼다고 이해해도 되지만 왜 저런 생성이 가능한지 알아보자. Nil아무것도 들어있지 않은 empty List를 재정의한 표현이다. scala의 List는 마지막에 이 Nil을 넣어줘야 그 List가 거기까지 라고 인식한다. 연산자 ::c++의 연산..
- Total
- Today
- Yesterday
- 드라마
- C/C++
- Spring
- Git
- mongoDB
- swift
- 국내여행
- 알고리즘
- database
- 운영체제
- 수학
- 자료구조
- SwiftUI
- rxswift
- scala
- SOCKET
- ue4
- DesignPattern
- C++
- Java
- 데이터베이스
- ios
- game
- machine learing
- C
- SHADER
- JSP
- OS
- winsock
- Cocos2d-x
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |