일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BOF
- flask
- Javascript
- hackthissite
- deep learning
- Linux
- Web
- c
- hacking
- 러닝 스칼라
- Scala
- backend
- 챗GPT
- 백엔드
- hackerschool
- php
- Python
- 러닝스칼라
- 딥러닝
- 경제
- 인공지능
- Shellcode
- 리눅스
- 파이썬
- 웹해킹
- c++
- ChatGPT
- BOF 원정대
- mysql
- webhacking
- Today
- Total
목록전체보기 (206)
jam 블로그
컬렉션(collection) 프레임워크는 배열, 리스트, 맵, 집합, 트리와 같이 주어진 타입을 가지는 하나 또는 그 이상의 값을 수집하는 데이터 구조를 제공한다. 1. 성능이 좋고, 객체지향적, 타입-매개변수화 - 자바 컬렉션 라이브러리 1. jvm이기 때문에 자바 컬렉션을 스칼라에서 활용 가능 스칼라는 여러 이유로 컬렉션을 재정의함 1. 고차함수 이용 (map, filter, reduce) 1. mutable/immutable 타입의 계층 구조 리스트, 집합, 그리고 맵 List 타입: immutable 단반향 연결 리스트 scala> val numbers = List(32, 95, 24, 21, 17) numbers: List[Int] = List(32, 95, 24, 21, 17) scala> v..
스칼라는 일급 함수, 선언형 프로그래밍을 지원한다. **일급 함수(first-class function)** : 함수형 프로그래밍에서 함수는 일급(first-class) 객체 다른 데이터 타입처럼 리터럴 형태로 생성될 수 있다. val, var로 저장될 수 있다. 다른 함수의 매개변수나 반환값으로 사용될 수 있다. **선언형 프로그래밍(declarative programming)** : 고차함수(또는 다른 함수를 사용하는 로직)는 단순히 이루어져야 할 작업을 선언하고 그 작업을 직접 수행하지 않음 함수 타입과 값 함수 타입은 입력 타입과 반환값 타입의 그룹으로 표현된다. ([, ...]) => def double(x: Int): Int = x * 2 val myDouble: Int => Int = dou..
순수 함수 입력 매개변수만을 가지고 계산을 수행한 후 값을 반환한다. 함수 외부의 어떤 데이터도 사용하거나 영향을 주지 않는다. 동일 입력에 대해 항상 같은 값을 반환한다. 주어진 입력으로 계산하는 것 이외에 프로그램의 실행에 영향을 미치지 않아야 한다, 즉 부수 효과(side effect) 가 없다 함수 정의 def multiplier(x:Int, y:Int):Int = {x * y} def로 시작하며 이름이 따라온다 - 그 뒤 괄호 안에는 매개변수 목록이 온다 (매개변수 타입은 추론하지 않으므로 지정해야 한다) - 그 뒤 : 뒤에 결과 타입을 지정한다 (결과 타입은 추론이 가능하므로 생략할 수 있다, 재귀 함수면 생략 불가능) - 함수 본문은 표현식 또는 표현식 블록으로 구성되어 있으며, 마지막 줄이..
표현식 표현식(expression) 은 값을 반환하는 코드의 단위입니다. // String 리터럴 "hello" "hel"+'l'+'o' 표현식으로 값과 변수 정의하기 아래와 같이 표현식의 반환값을 값 또는 변수에 할당하는 식으로 나타낼 수 있습니다. val [: ] = 표현식 블록 표현식 블록 은 중괄호({,})를 사용하여 하나로 묶어서 사용합니다. 두 표현식 val x = 5 * 20; val amount = x + 10 표현식 블록 val amount = { val x = 5 * 20; x + 10} 여러 줄로 표현 val amount = { val x = 5 * 20 x + 10 } 삼중 구조 후반부에 제어 구조를 다룰 때 다룹니다. { val a = 1; { val ..
스칼라에서 값과 변수에 저장된 데이터를 더 이상 사용하지 않으면 자바 가상 머신의 가비지 컬렉션이 자동으로 할당을 취소한다. 직접 할당 취소할 필요도 능력도 없다. 리터럴(literal) 숫자 5, 문자 A, 텍스트 ’Hello, World’처럼 소스 코드에 바로 등장하는 데이터 값 (value) 불변의 타입을 갖는 스토리지 단위이며, 데이터를 저장 - 명시적인 타입이 있어야 하는 것은 아니다, 스칼라 컴파일러가 할당된 데이터를 기반으로 추론한다. => 타입 추론 (type inference) - 코드를 작성하는데 타입 추론은 편하지만 가독성을 떨어뜨리지 않는 범위에서 사용 val [: 타입] = 변수 (variable) 값을 저장하고 그 값을 가져올 수 있도록 할당되거나 예약된 메모리 공간에 대응하는 ..