Scala Tutorial Scala는 객체지향 프로그래밍과 함수형 프로그래밍의 다양한 기능을 통합하도록 설계된 다중 패러다임 프로그래밍 언어입니다.
Scala는 Java와 유사한 프로그래밍 언어인 멀티 패러다임 프로그래밍 언어로, 확장 가능한 언어를 구현하고 객체 지향 프로그래밍과 함수형 프로그래밍의 다양한 기능을 통합하도록 설계되었습니다.
첫 번째 Scala 프로그램
다음은 Scala로 작성된 일반적인 Hello World 프로그램입니다.
Example
object HelloWorld extends App { println("Hello, world!") }
Run Instance»
온라인 예제를 보려면 "Run Instance" 버튼을 클릭하세요
또는
Instance
object HelloWorld { def main(args: Array[String]) { println("Hello, world!") } }
인스턴스 실행»
온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요
Java의 Hello World 애플리케이션과 얼마나 유사한지 참고하세요. 한 가지 중요한 차이점은 Scala 버전의 Hello World 프로그램은 static 키워드를 통해 기본 메서드를 정적 메서드로 표시하지 않고 object 키워드를 사용하여 싱글톤을 생성한다는 것입니다.
프로그램이 HelloWorld.scala 파일로 저장되었다고 가정하면 다음 명령줄을 통해 컴파일할 수 있습니다.
> scalac HelloWorld.scala
실행 방법:
> scala -classpath . HelloWorld
이는 Java의 "Hello World" 프로그램을 컴파일하고 실행하는 것과 비슷하지 않나요? 실제로 Scala의 컴파일 및 실행 모델은 Java와 동일하므로 Ant와 같은 Java의 빌드 도구와도 호환됩니다.
또한 -i 옵션(파일 코드에서 로드)을 사용하여 Scala 인터프리터를 사용하여 직접 프로그램을 실행할 수도 있습니다. ) 및 옵션 -e(추가 코드를 실행하려면 실제로 HelloWorld 개체의 메서드를 실행해야 함):
> scala -i HelloWorld.scala -e 'HelloWorld.main(null)'
팁: Scala 튜토리얼은 초보자부터 고급까지 Scala 지식을 배우는 데 도움이 됩니다. 궁금하신 점은 PHP 중국어 홈페이지Scala Community에 접속하셔서 질문해주시면 열성적인 네티즌들이 답변해드리겠습니다.
Scala 기능
지원되는 프로그래밍 패러다임
객체 지향 기능
Scala는 모든 값이 객체인 순수 객체 지향 언어입니다. 객체의 데이터 유형과 동작은 클래스와 특성으로 설명됩니다. 클래스 추상화 메커니즘을 확장하는 방법에는 두 가지가 있습니다. 한 가지 접근 방식은 하위 클래스 상속이고, 다른 접근 방식은 유연한 믹스인 메커니즘입니다. 이 두 가지 접근 방식은 다중 상속 문제를 피할 수 있습니다.
함수형 프로그래밍
스칼라도 함수형 언어이고, 그 함수를 값으로 사용할 수도 있습니다. Scala는 익명 함수 정의를 위한 경량 구문을 제공하고, 고차 함수를 지원하고, 여러 수준의 함수 중첩을 허용하고, 커링을 지원합니다. Scala의 케이스 클래스와 내장 패턴 일치는 함수형 프로그래밍 언어에서 일반적으로 사용되는 대수 유형과 동일합니다.
또한 프로그래머는 Scala의 패턴 일치를 사용하여 정규식과 유사한 코드를 작성하여 XML 데이터를 처리할 수 있습니다. 이러한 상황에서는 목록 이해 기능이 공식 쿼리를 작성하는 데 유용합니다.
JVM은 꼬리 재귀를 지원하지 않으므로 Scala는 꼬리 재귀 최적화를 완전히 지원할 수 없습니다. 그러나 Scala 컴파일러는 일부 간단한 꼬리 재귀를 루프로 최적화할 수 있습니다.
다음 코드는 Erlang 빠른 정렬 예제와 비교할 수 있는 기능적 스타일로 빠른 정렬 알고리즘을 구현합니다.
def qsort(list: List[Int]): List[Int] = list match { case Nil => Nil case pivot :: tail => val(smaller, rest) = tail.partition(_ < pivot) qsort(smaller) ::: pivot :: qsort(rest) }
정적 타이핑
Scala에는 유형 시스템과 컴파일 타임 검사 기능이 있어 데이터의 안전성과 일관성을 보장합니다. 코드 . 유형 시스템은 특히 다음 기능을 지원합니다:
공분산 및 반공분산,
주석,
유형 매개변수에 대한 상한 및 하한 제약 조건,
comb ine 카테고리와 객체 멤버로서의 추상화 유형,
복합 유형,
자신을 참조할 때 유형을 명시적으로 지정,
뷰,
다형성 방법.
Extensibility
Scala는 실제로 도메인별 애플리케이션 개발에 해당 도메인별 언어 확장이 필요한 경우가 많다는 사실을 염두에 두고 설계되었습니다. Scala는 라이브러리 형태로 새로운 언어 구성을 쉽고 원활하게 추가할 수 있는 다양한 고유한 언어 메커니즘을 제공합니다.
모든 메소드를 접두사 또는 후위 연산자로 사용할 수 있습니다.
클로저는 다음을 기반으로 자동으로 구성할 수 있습니다. 예상되는 유형.
위의 두 기능을 조합하여 사용하면 구문을 확장하거나 매크로와 같은 메타프로그래밍 기능을 사용하지 않고도 새 문을 정의할 수 있습니다.
Concurrency
Scala는 Actor를 동시성 모델로 사용합니다. Actor는 사서함을 통해 메시지를 보내고 받는 스레드와 같은 엔터티입니다. 액터는 스레드를 재사용할 수 있으므로 프로그램에서 수백만 개의 액터를 사용할 수 있는 반면 스레드는 수천 개만 생성할 수 있습니다. 2.10 이후 버전에서는 Akka가 기본 Actor 구현으로 사용됩니다. [20] 다음 코드는 Actor 모드를 사용하는 EchoServer 구현입니다.
val echoServer = actor(new Act { become { case msg => println("echo " + msg) } }) echoServer ! "hi"
Actor 모드는 동시 프로그래밍을 단순화하고 멀티 코어 CPU의 기능을 활용할 수 있습니다.
이 Scala 튜토리얼 매뉴얼에서 다루는 내용
이 Scala 튜토리얼은 기본 Scala 구문, Scala 데이터 유형, Scala 변수, Scala 연산자, Scala 함수, Scala 문자열, Scala 클래스 및 객체를 포함한 모든 기본 및 고급 Scala 지식을 다룹니다. 기본 및 고급 Scala 지식을 소개합니다.
팁: 이 튜토리얼의 각 장에는 많은 Scala 예제가 포함되어 있습니다. "예제 실행" 버튼을 직접 클릭하면 결과를 온라인으로 볼 수 있습니다. 이러한 예제는 Scala를 더 잘 이해하고 사용하는 데 도움이 됩니다.
최신 장
- Scala 文件 I/O 2016-10-18
- Scala 提取器(Extractor) 2016-10-18
- Scala 异常处理 2016-10-18
- Scala 正则表达式 2016-10-18
- Scala 模式匹配 2016-10-18
- Scala Trait(特征) 2016-10-18
- Scala 类和对象 2016-10-18
- Scala Iterator(迭代器) 2016-10-18
관련 강좌
- 최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일) 2022-02-17
- PHP로 사업을 시작하는 방법에 대해 간단히 이야기해 보겠습니다. 2023-01-04
- 민망한 물건 백과사전 사이트를 모방한 Mini 버전 MVC 프레임워크의 대규모 실용 Tianlongbabu 개발 2018-01-25
- 로그인 인증 및 클래식 게시판 2018-03-02
- PHP 실용 개발 시작하기: 빠른 PHP 생성 [중소기업 포럼] 2022-06-28
- 빠른 시작 Node.JS 정식 버전 2022-09-30
- 자신만의 PHP MVC 프레임워크 작성(깊이 있는 40개 장/자세한 내용/초보자가 발전하려면 읽어야 함) 2022-12-08
- 말 군인 봄 비디오 튜토리얼 2022-04-12