1️⃣ To do list
2️⃣ 코드카타
3️⃣ 회고
1. 깃이 너무 어렵다.... 처음 푸쉬할 때는 괜찮은데, 내용을 업데이트하여 다시 푸쉬할 때 자꾸 오류가 난다. 다른 깃헙 설명 영상을 찾아봐야겠다.
2. 클래스를 활용해 계산기 과제를 풀었다.
연산 별로 클래스를 따로 만들도록 주어졌는데, 막상 코드를 짜보니 오히려 코드가 더 길어져 가독성이 떨어졌다. 더 나은 방법이 있을까?
// 레벨 3
class Calculator {
var op: String
init(_ op: String) {
self.op = op
}
func calculate(firstNumber: Double, secondNumber: Double) -> Double {
switch op {
case "+" :
let add = AddOperation()
return add.calculate(firstNumber, secondNumber)
case "-" :
let subtract = SubstractOperation()
return subtract.calculate(firstNumber, secondNumber)
case "*" :
let multiply = MultiplyOperation()
return multiply.calculate(firstNumber, secondNumber)
case "/" :
let divide = DivideOperation()
return divide.calculate(firstNumber, secondNumber)
default :
return 0
}
}
}
class AddOperation {
func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
return firstNumber + secondNumber
}
}
class SubstractOperation {
func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
return firstNumber - secondNumber
}
}
class MultiplyOperation {
func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
return firstNumber * secondNumber
}
}
class DivideOperation {
func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
return firstNumber / secondNumber
}
}
// 실행
let addResult = Calculator("+").calculate(firstNumber: 10, secondNumber: 3)
let subtractResult = Calculator("-").calculate(firstNumber: 10, secondNumber: 3)
let multiplyResult = Calculator("*").calculate(firstNumber: 10, secondNumber: 3)
let divideResult = Calculator("/").calculate(firstNumber: 10, secondNumber: 3)
print("addResult : \(addResult)")
print("subtractResult : \(subtractResult)")
print("multiplyResult : \(multiplyResult)")
print("divideResult : \(divideResult)")
4️⃣ 내일 계획
1. 코드카타
2. git 설명 영상 찾아보기
3. 과제 영상 보고 코드 보완하기
'Swift > TIL(TodayILearned)' 카테고리의 다른 글
[Swift|TIL] 240312 - 접근 제한자, extension, subscript (1) | 2024.03.12 |
---|---|
[Swift|코드카타] (프로그래머스) 입문 #35. 부족한 금액 계산하기 - 수학 공식을 활용하여 더 가볍게 코딩! (0) | 2024.03.08 |
[Swift|TIL] 240306 회고 - 클래스, 구조체, 열거형 비교 (2) | 2024.03.06 |
[Swift|TIL] 240305 회고 (2) | 2024.03.05 |
[Swift|TIL] 240304 회고 (4) | 2024.03.04 |