ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스칼라에서 함수 정의하는 방법
    컴공지식/프로그래밍언어론 2024. 8. 31. 21:56

    다음 예시를 통해 알아보자

    def add(x: Int, y: Int): Int = {

     x + y

    }

     

    def: 이건 함수 정의를 시작하는 키워드이다.

    여기서 add는 함수의 이름이다. 

     

    매개변수 목록: 소괄호 안에 함수가 받아들일 매개변수들을 정의한다.

    x와 y는 정수형(Int) 변수라는 뜻이다. 

     

    그 다음 나오는 Int는 함수의 반환 타입이다. 

     

    = 기호: 함수의 본문이 시작된다는 표시다.

     

    중괄호 {}: 함수의 본문을 감싸는 거다.

    이 예제에선 x + y를 더하는 기능을 하고 있다.

     

    하지만 다음과 같이 작성할 수도 있다.

    def areaOfSquare(a: Int) = a * a

    이 코드는 정사각형의 넓이를 구하는 함수이다.

    근데 return 타입이 보이지 않는다.

    스칼라의 매력 중 하나가 바로 이거다.

    스칼라에서는 함수의 반환 타입을 명시하지 않아도 된다.

    컴파일러가 함수의 본문을 분석해서 반환 타입을 자동으로 추론해준다.

    스칼라 컴파일러는 이 함수가 Int를 반환한다는 걸 자동으로 알아채는 거다. ㅋㅋ

     

     

    이제 다음은 main 함수의 선언에 대해서 알아보자

    main은 자바도 그렇고 c도 그렇고 함수의 진입점이다.

    예시 코드를 통해 살펴보자.

     

    @main def runAreaCalculator(): Unit = {

      println(areaOfSquare(5))

      println(areaOfSquare(3))

    }

     

    스칼라에선 @main 어노테이션을 사용해서 메인 함수를 지정한다. 

    이 runAreaCalculator 함수는 프로그램 실행 시 가장 먼저 호출되는 함수이다.

    Unit은 반환값이 없다는 의미다.

    println(areaOfSquare(5)): 이 부분은 areaOfSquare 함수를 호출해서, 정사각형의 한 변의 길이가 5일 때의 넓이를 계산한 후 출력해주는 거다.

    아래 것도 이하동문이다.

     

    마지막으로, 이 코드를 실행하려면 터미널에서 이렇게 입력하면 된다.

    scala areaOfSquare.scala

    areaOfSquare.scala 파일을 스칼라 인터프리터로 실행하겠다는 명령이다.

     

     

    '컴공지식 > 프로그래밍언어론' 카테고리의 다른 글

    패턴 매칭 vs if-else 절  (0) 2024.08.31
    스칼라의 패턴 매칭  (0) 2024.08.31
    스칼라에서 타입을 정의하는 방법  (0) 2024.08.31
    Scalar의 assert  (0) 2024.08.31
    인터프리터와 컴파일러의 차이  (1) 2024.08.31
Designed by Tistory.