Scala-함수

함수는 작업을 수행하는 명령문 그룹입니다. 코드를 별도의 함수로 나눌 수 있습니다. 코드를 여러 함수로 나누는 방법은 사용자에게 달려 있지만 논리적으로 나누는 것은 일반적으로 각 함수가 특정 작업을 수행하도록하는 것입니다.

Scala는 기능과 방법을 모두 가지고 있으며 우리는 방법과 기능이라는 용어를 약간의 차이를 제외하고 서로 바꿔서 사용할 수 있습니다. Scala 메서드는 이름, 서명, 선택적으로 일부 주석, 그리고 Scala의 함수로서 변수에 할당 될 수있는 완전한 객체 인 일부 바이트 코드를 갖는 클래스의 일부입니다. 즉, 어떤 객체의 멤버로 정의되는 함수를 메서드라고합니다.

함수 정의는 소스 파일의 어느 위치 에나 나타날 수 있으며 Scala는 중첩 함수 정의, 즉 다른 함수 정의 내의 함수 정의를 허용합니다. 가장 중요한 점은 Scala 함수의 이름이 +, ++, ~, &,-,-, \, /, : 등과 같은 문자를 가질 수 있다는 것입니다.

함수 선언

스칼라 함수 선언의 형식은 다음과 같습니다.

def functionName ([list of parameters]) : [return type]

등호 및 메서드 본문을 사용하지 않는 경우 메서드는 암시 적으로 추상으로 선언 됩니다.

기능 정의

스칼라 함수 정의는 다음과 같은 형식을 갖습니다.

통사론

def functionName ([list of parameters]) : [return type] = {
   function body
   return [expr]
}

여기, return type 유효한 Scala 데이터 유형이 될 수 있으며 list of parameters쉼표로 구분 된 변수 목록이며 매개 변수 목록 및 반환 유형은 선택 사항입니다. Java와 매우 유사합니다.return문은 함수가 값을 반환하는 경우 표현식과 함께 사용할 수 있습니다. 다음은 두 정수를 더하고 합계를 반환하는 함수입니다.

통사론

object add {
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b
      return sum
   }
}

아무것도 반환하지 않는 함수는 Unit 그것은 voidJava에서 함수가 아무것도 반환하지 않음을 나타냅니다. Scala에서 아무것도 반환하지 않는 함수를 프로 시저라고합니다.

통사론

다음은 구문입니다.

object Hello{
   def printMe( ) : Unit = {
      println("Hello, Scala!")
   }
}

함수 호출

Scala는 메서드 호출에 대한 다양한 구문 변형을 제공합니다. 다음은 메서드를 호출하는 표준 방법입니다.

functionName( list of parameters )

객체의 인스턴스를 사용하여 함수가 호출되면 다음과 같이 Java와 유사한 점 표기법을 사용합니다.

[instance.]functionName( list of parameters )

다음 예제 프로그램을 사용하여 동일한 함수를 정의한 다음 호출하십시오.

object Demo {
   def main(args: Array[String]) {
      println( "Returned Value : " + addInt(5,7) );
   }
   
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b

      return sum
   }
}

위의 프로그램을 Demo.scala. 다음 명령은이 프로그램을 컴파일하고 실행하는 데 사용됩니다.

명령

\>scalac Demo.scala
\>scala Demo

산출

Returned Value : 12

Scala 함수는 Scala 프로그래밍의 핵심이며 이것이 Scala가 함수형 프로그래밍 언어로 간주되는 이유입니다. 다음은 Scala 프로그래머가 이해해야하는 Scala 함수와 관련된 몇 가지 중요한 개념입니다.

이름 별 기능 명명 된 인수가있는 함수
가변 인수가있는 함수 재귀 함수
기본 매개 변수 값 고차 함수
중첩 함수 익명 함수
부분적으로 적용된 기능 카레 기능