Last active
July 19, 2018 01:48
-
-
Save mrbkdad/9cd9de16e48fcabb429a62fb2af23d21 to your computer and use it in GitHub Desktop.
learning scala, 스칼라 언어 배우기
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## 스칼라 언어 배우기\n", | |
"\n", | |
"### 목차\n", | |
"1. 첫째장 : https://gist.github.com/mrbkdad/16cb82e20121489a6ba79ba8b26c6f7d\n", | |
" - 1 기본\n", | |
" - 환경\n", | |
" - var, val\n", | |
" - 숫자 타입\n", | |
" - 연산자와 함수\n", | |
" - Scaladoc\n", | |
" - 2 제어 구조와 함수\n", | |
" - if\n", | |
" - 블럭\n", | |
" - for\n", | |
" - ; 생략 가능 ( java script )\n", | |
" - Unit : java의 void 와 유사\n", | |
" - = 없는 함수정의\n", | |
" - exception, catch 문 pattern matching\n", | |
"2. 둘째장 : https://gist.github.com/mrbkdad/85f6584ca4d0588ab6bd247b9246641f\n", | |
" - 3 배열 사용하기\n", | |
" - 고정길이 Array, 가변길이 ArrayBuffer\n", | |
" - 초기값과 생성시 new 사용 않음\n", | |
" - [] (X) -> () (O)\n", | |
" - for(elem <- arr) 사용\n", | |
" - for(elem <- arr if ...) ... yield ... : 배열 변환 ( Map ? )\n", | |
" - 자바와의 호환 : ArrayBuffer, scala.collection.JavaConversion 사용\n", | |
" - 4 맵과 튜플\n", | |
" - 맵 : 키/값 쌍의 모음\n", | |
" - 튜플 : 같은 타입이 아니어도 되는 n개 오브젝트 집합\n", | |
" - 맵 생성, 쿼리, 방문\n", | |
" - mutable map, immutable map\n", | |
" - hashmap : default, treemap 사용 가능\n", | |
" - 값들을 뭉치기 위한 튜플\n", | |
" - 값들을 묶어서 처리 하기 위해 zip 메소드 사용\n", | |
"3. 셋째장 : https://gist.github.com/mrbkdad/5cb32512bec67b603aeee231cc3aa880\n", | |
" - 5 클래스\n", | |
" - 클래스의 필드는 자동으로 게터와 세터를 만든다\n", | |
" - 클래스의 클라이언트를 바꾸지 않고 필드를 맞춤 게터/세터로 교체 할 수 있다.(단일 접근 원칙)\n", | |
" - 단일접근원칙 : 모듈이 제공하는 모드 서비스는 단일한 표기법으로 접근 가능해야 한다.\n", | |
" - 저장소로 구현했는지 계산으로 구현했는지를 누설해서는 안된다(Bertrand Meyer)\n", | |
" - 자바빈 getXxx/SetXxx 메소드를 생성하려면 @Beanproperty 표기법 사용\n", | |
" - 모든 클래스는 클래스 정의와 \"뒤썩인\" 기본 생성자를 갖고 있다.\n", | |
" - 기본 생성자의 인자는 클래스 필드가 된다.\n", | |
" - 기본 생성자는 클래스 바디의 모든 문을 실행한다.\n", | |
" - 보조 생성자는 선택적이다. 보조 생성자는 this라고 부른다.\n", | |
"4. 네째장 : https://gist.github.com/mrbkdad/8b3688b6392222b773630ab8f01d7299\n", | |
" - 6 오브젝트\n", | |
" - 싱글톤과 유틸리티 메소드를 위해 오브젝트 사용\n", | |
" - 클래스는 같은 이름의 companion 오브젝트를 가질 수 있음\n", | |
" - 클래스나 트레이트를 상속 할 수 있음\n", | |
" - apply 메소드는 보통 companion 클래스의 새 인스턴스를 생성 할 때 사용\n", | |
" - main 메소드를 피하기 위해 App 트레이트를 상속하는 오브젝트를 사용\n", | |
" - Enumeration 오브젝트를 확장하여 Enumeration을 구현 가능\n", | |
"5. 다섯째장 : https://gist.github.com/mrbkdad/2ac5906655a6e9384a368c60352f669f\n", | |
" - 7 패키지와 임포트\n", | |
" - 패키지도 중첩 가능\n", | |
" - 패키지 패스는 절대가 아니다.\n", | |
" - 패키지 구문에서 x.y.z 체인은 중간 패키지인 x와 x.y를 감춘다.\n", | |
" - 파일 시작에 나오는 중괄호 없는 패키지문은 전체 파일로 확장된다.\n", | |
" - 패키지 오브젝트는 함수와 변수를 가질 수 있다.\n", | |
" - 임포트문은 패키지, 클래스와 오브젝트를 임포트 할 수 있다.\n", | |
" - 임포트문은 아무 데나 올 수 있다.\n", | |
" - 임포트문은 멤버 이름을 바꾸거나 숨길 수 있다.\n", | |
" - java.lang.scala.Predef 는 항상 임포트 된다." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Apache Toree - Scala", | |
"language": "scala", | |
"name": "apache_toree_scala" | |
}, | |
"language_info": { | |
"file_extension": ".scala", | |
"name": "scala", | |
"version": "2.11.8" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment