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 함수와 관련된 몇 가지 중요한 개념입니다.
이름 별 기능 | 명명 된 인수가있는 함수 |
가변 인수가있는 함수 | 재귀 함수 |
기본 매개 변수 값 | 고차 함수 |
중첩 함수 | 익명 함수 |
부분적으로 적용된 기능 | 카레 기능 |