일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬 괄호 회전하기
- jpa 게시판
- 스프링부트 블로그
- 유니티
- springboot 사이드프로젝트
- 프로그래머스 괄호 회전하기 python
- python 괄호 회전하기
- 스프링부트 update
- 스프링부트 회원가입
- 유니티Material
- 유니티Cube
- 스프링게시판프로젝트
- 파이썬 기초
- 괄호 회전하기 파이썬
- springboot 게시판
- typescript 기초문법
- spring jpa 사이드프로젝트
- spring jpa 게시판
- 스프링부트 블로그만들기
- 스프링 게시판 만들기
- 스프링부트 게시판만들기
- 타입스크립트 기초문법
- JS기초
- 스프링부트 미니프로젝트
- springboot 미니프로젝트
- 타입스크립트 기초
- springboot 게시판만들기
- 타입스크립트 기본문법
- springboot 게시판 프로젝트
- 유니티기초
- Today
- Total
목록기초 (38)
Digking's cave
Optional java에서 NullPointerExcepion을 방지하는 wrapper class이다. Optional class가 가진 메소드 예시 Optional 생성하는 방법 Optional.empty() : null값으로 생성 Optional exampleText = Optional.empty(); optional은 static으로 empty객체를 미리 생성해서 가지고 있다. 따라서 빈 객체를 여러 번 생성할 때도 이 empty객체를 공유함으로 메모리를 절약해서 사용할 수 있다. Optional.of() : null이 아닌 값으로 생성 Optional exampleText = Optional.of("example"); Optional.of()로 Null을 저장하려고하면 NullPointerExc..
extends : 일반클래스, 추상클래스를 상속할 때 implements : interface를 상속할 때 interface가 interface를 상속받을 때는 extends interface가 class를 상속받을 때는 extends extends 부모의 특징을 연장해서 사용한다. 부모에서 선언/정의 함 자식은 부모의 메소드/변수를 그대로 사용할 수 있다 다중 상속 X implements 부모의 특징을 도구로 새로운 특징을 만들어서 사용한 부모는 선언만 함 자식은 오버라이딩해서 사용한다. 여러개의 interface를 상속 받을 수 있다
Python에서 두 개의 list에 모두 들어있는, 공통요소만 찾아내는 방법 1. set을 활용한다. list(set(list1) & set(list2)) 2. list 선언시에 응용 [x for x in list1 if x in list2]
listname = [변수 for 변수 in 기존리스트 if 조건] list1 = [1,2,3,4,5,6,7,8,9,10] # 기존list에서 조건에 맞게 값 수정 newlist1 = [20 if i==10 else i for i in list1] # 기존list를 통해 새list 만듦 newlist2 = [i*2 for i in list1]
for문을 돌며 list의 값을 삭제하면, list out of range 오류가 발생한다. 이를 해결하기 위해서는 아래와 같은 방법이 있다. 1. 다른 list로 카피해서 사용한다. teslist = [1,2,4,3,5,7] templist = testlist[::] 2. for문 선언부에 list를 카피해서 사용한다. teslist = [1,2,4,3,5,7] for i in testlist[::]: print(i)
다형성 Polymorphism / Generic generic은 call signature 작성할 때 들어오는 type을 확실히 모를 때 사용한다. 어떤 타입이 들어올지 모르고, 다양한 경우에 대비를 해야하는 경우 concrete type은 모든 경우를 다 작성해야 한다. 예시) type SuperPrint = { (arr: number[]) : void (arr: boolean[]) : void (arr: string[]) : void (arr: (string | number)[]) : void } const superPrint : SuperPrint = (arr) =>{ arr.forEach(i => console.log(i)) } superPrint([1,2,3,4]) superPrint([true..
Overloading 함수가 서로 다른 여러개의 call signature 가지고 있을 때 사용한다. type Add = { (a : number , b : number ) : number (a : number , b : string ) : number } const add : Add = (a,b) => { if(typeof b === 'string') return a return a + b } Router.push({ path : "/home", state:1 }) 위와 같이 라우터 기능에서 home으로 페이지 이동하라는 내용의 코드를 아래의 오버로딩 사용한 코드로 작성 가능하다. type Config = { path : string, state : obeject } type Push = { (path..
Call Signature 함수의 매개변수와 반환타입을 type으로 미리 선언해 둔다. → 함수 위에 마우스를 올려서 해당 인자 / 반환값의 Type을 확인할 수 있다. - 내가 원하는 type을 선언해두어, 함수가 어떻게 작동하는 지 정보를 확인할 수 있다 - 개발자가 미리 해당 함수의 type을 인지할 수 있다. - 코드구현+타입지정 의 과정을 분리할 수 있다. const add:Add = (a: number ,b: nuber) => a+b type Add = (a:number , b:number) => number; const add:Add = (a,b) => a+b
Tuple 변수명 : [타입 , 타입, 타입..] = [값, 값, 값..] 변수명 : readonly [타입 , 타입, 타입..] = [값, 값, 값..] const numbers : readonly number[] = [3,4,5,6] const examplelist : [string, number, boolean] = ["diging", 28, true] const examplelist : readonly [string, number, boolean] = ["diging", 28, true] any any를 앞에 쓰면 TypeScript문법이 사용되지 않는다. 변수명 : any [].. unknown 변수의 타입을 모를 때 unknow으로 일단 임시 지정해준다. let tempobc : unknown..
함수 선언 function 함수명 (){ } 인자(parameter)가 있는 함수 function 함수명 (변수명: 타입){ } optional 인자가 있는 함수 function 함수명 (변수명?: 타입){ } return값이 없는 함수 선언 function 함수명 (){ } function 함수명 () : void { } return값이 있는 함수 선언 function 함수명 (){ return } function 함수명 () : 리턴값타입 { return } 화살표 함수로 표현하기 const examfunc = (name : string) => number => ({age})