Zettelkasten/Literature(리터레처)/구조 분해 할당과 전개구문.md

구조 분해 할당과 전개구문

JavaScript Python 개념
구조 분해 할당 (Destructuring) 언패킹 (Unpacking) 거의 동일
전개 구문 (Spread) 언패킹 (*args) 유사하지만 약간 다름

배열/리스트 분해

// JS
const [a, b, c] = [1, 2, 3];
const [x, ...rest] = [1, 2, 3, 4];
# Python
a, b, c = [1, 2, 3]
x, *rest = [1, 2, 3, 4]  # rest = [2, 3, 4]

함수 인자 전개

// JS
const nums = [1, 2, 3];
Math.max(...nums);
# Python
nums = [1, 2, 3]
max(*nums)

객체/딕셔너리 (차이 있음!)

// JS - 객체 구조 분해
const {name, age} = {name: 'Alice', age: 25};
 
// JS - 객체 전개
const obj2 = {...obj1, extra: 'value'};
# Python - 딕셔너리는 구조 분해 안 됨!
# 이런 건 불가능:
# name, age = {'name': 'Alice', 'age': 25}  # 에러!
 
# Python - 딕셔너리 언패킹
dict2 = {**dict1, 'extra': 'value'}

핵심 정리

개념 JavaScript Python
구조 분해 할당 const [a,b] = arr a, b = arr
전개 구문 ...arr *arr
나머지 요소 ...rest *rest
객체 전개 {...obj} {**dict}

댓글

첫 번째 댓글을 남겨보세요.