[LeetCode] 2726. Calculator with Method Chaining

Chobby·2024년 6월 28일
1

LeetCode

목록 보기
20/194

😎풀이

class 형에 아직도 약하다는 점을 깨달았다.

메서드 체이닝을 구현하는 부분에서 new 연산자로 새 class를 만들 필요가 전혀 없이

return this로 해결이 된다는 것을 뒤늦게 깨닳음..

class Calculator {
    value = 0
    constructor(value: number) {
        this.value = value
    }
    
    add(value: number): Calculator {
        // return this 쓰세요!
        return new Calculator(this.value + value)
    }
    
    subtract(value: number): Calculator {
        return new Calculator(this.value - value)
    }
    
    multiply(value: number): Calculator {
        return new Calculator(this.value * value)
    }
    
    divide(value: number): Calculator {
        if(!value) throw new Error("Division by zero is not allowed")
        return new Calculator(this.value / value)
    }
    
    power(value: number): Calculator {
        return new Calculator(this.value ** value)
    }
    
    getResult(): number {
        return this.value
    }
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글