Scala for Backend Engineering & Functional Programming · 강의

문보다 식

모든 것이 값을 반환합니다.

레슨 4/413개 단계

문보다 식은(는) CoddyKit의 무료 Scala for Backend Engineering & Functional Programming 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Scala for Backend Engineering & Functional Programming 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Scala for Backend Engineering & Functional Programming 강의에는 총 4개의 강의가 포함되어 있습니다.

모든 것은 표현식입니다

많은 언어에서 if와 블록은 작업을 수행하지만 값을 만들지 않는 문입니다. Scala에서는 이것들이 값을 계산하는 표현식입니다.

이러한 변화는 Scala 함수형 프로그래밍의 핵심입니다.

val max = if (3 > 2) 3 else 2

표현식으로서의 if

Scala의 if/else는 실행되는 분기의 값을 반환합니다. 그 결과를 val에 바로 할당할 수 있습니다.

분기 안에서 값을 설정하는 가변 변수가 필요하지 않습니다.

object Main extends App {
  val temp = 18
  val label = if (temp > 20) "warm" else "cool"
  println(label)
}

블록은 마지막 줄을 반환합니다

{ ... } 블록 자체가 표현식입니다. 블록의 값은 내부에 있는 마지막 표현식의 값입니다.

여기서 블록은 30으로 계산되고, 이 값이 result의 값이 됩니다.

object Main extends App {
  val result = {
    val a = 10
    val b = 20
    a + b
  }
  println(result)
}

명시적인 return은 필요하지 않습니다

메서드 본문은 표현식이므로 그 값은 마지막으로 계산된 표현식의 값입니다. return 키워드는 거의 사용하지 않습니다.

아래 두 메서드는 같은 방식으로 동작하지만, 관용적인 방식에서는 return을 생략합니다.

def double(x: Int) = x * 2
// instead of: def double(x: Int) = { return x * 2 }

match도 표현식입니다

match를 사용한 패턴 매칭도 값을 생성하므로, 입력을 결과에 매핑하는 데 적합합니다.

각 case 분기는 해당 분기의 값을 생성합니다.

object Main extends App {
  val day = 3
  val name = day match {
    case 1 => "Mon"
    case 3 => "Wed"
    case _ => "Other"
  }
  println(name)
}

표현식은 조합할 수 있습니다

표현식은 값을 반환하므로 자유롭게 중첩하고 조합할 수 있습니다.

if를 함수의 인수로 사용하거나 더 큰 계산의 일부로 사용할 수 있으므로 임시 변수가 필요하지 않습니다.

object Main extends App {
  val n = 7
  println("sign: " + (if (n >= 0) "+" else "-"))
}

문도 여전히 존재합니다

모든 것이 유용한 값을 생성하는 것은 아닙니다. println이나 대입처럼 부수 효과만을 위해 수행되는 연산은 Unit으로 계산됩니다.

이러한 것이 Scala의 문과 유사한 표현식입니다.

val x: Unit = println("hello") // value is ()

표현식에서는 var를 피하십시오

표현식 중심 방식에서는 가변 var 패턴을 다른 방식으로 바꿀 수 있습니다. var를 선언하고 분기에서 대입하는 대신, 전체 if를 val에 할당하십시오.

object Main extends App {
  val score = 85
  val grade = if (score >= 90) "A" else if (score >= 80) "B" else "C"
  println(grade)
}

for는 값을 생성합니다

for와 yield를 함께 사용하면 부수 효과를 위해 단순히 반복하는 대신 새로운 컬렉션을 만드는 표현식이 됩니다.

이렇게 하면 반복이 값을 생성하는 변환으로 바뀝니다.

object Main extends App {
  val squares = for (i <- 1 to 4) yield i * i
  println(squares)
}

백엔드 코드에서 중요한 이유

표현식 중심 코드는 대체로 더 짧고, 구성 요소가 적으며, 테스트하기 쉽습니다.

  • 가변 변수가 줄어들면 버그도 줄어듭니다.
  • 결과가 입력에서 자연스럽게 흘러 나옵니다.
  • Scala의 함수형 라이브러리와 잘 조합됩니다.

문 방식과 표현식 방식

두 가지 사고방식을 비교해 보십시오. 문 방식은 변수를 변경하고, 표현식 방식은 값을 바로 반환합니다.

Scala에서는 두 방식 모두 사용할 수 있지만 표현식 방식을 선호합니다.

var s = ""            // statement style
if (true) s = "yes" else s = "no"

val e = if (true) "yes" else "no" // expression style

빠른 확인

Scala에서 if/else는 무엇으로 계산됩니까?

복습

Scala는 상태만 변경하는 문보다 값을 생성하는 표현식을 선호합니다.

  • if, match, 블록, for/yield는 모두 값을 반환합니다.
  • 메서드 본문은 마지막 표현식을 반환하므로 return은 거의 필요하지 않습니다.
  • 부수 효과가 있는 코드는 Unit을 반환합니다.
  • 이 방식은 var 사용과 버그를 줄여 줍니다.
무료로 시작

AI 튜터와 함께 Scala을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
39
레슨
143

자주 묻는 질문

“문보다 식” 강의는 무료인가요?

네 — “문보다 식” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Scala for Backend Engineering & Functional Programming 강의 전체를 잠금 해제할 수 있습니다. Scala for Backend Engineering & Functional Programming 강의에는 총 4개의 강의가 포함되어 있습니다.

“문보다 식”에서 뭘 배우나요?

모든 것이 값을 반환합니다. 브라우저에서 직접 실행하는 실습 코드로 Scala for Backend Engineering & Functional Programming을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Scala for Backend Engineering & Functional Programming을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Scala for Backend Engineering & Functional Programming은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“문보다 식” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Scala for Backend Engineering & Functional Programming 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Scala for Backend Engineering & Functional Programming 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. val과 var
  2. 기본 형식과 리터럴
  3. 형식 추론
  4. 문보다 식
← Scala for Backend Engineering & Functional Programming(으)로 돌아가기