스칼라 문


Java 언어를 잘 이해하고 있다면 Scala를 배우기가 쉬울 것입니다. Scala와 Java의 가장 큰 구문 차이점은 줄 종결자가 선택 사항이라는 것입니다. 서로의 메소드를 호출하여 통신하는 객체 컬렉션으로 정의할 수 있는 Scala 프로그램을 생각해 보세요. 이제 클래스, 객체, 메소드 및 임시 변수가 무엇인지 간략하게 살펴보겠습니다.

  • 객체 - 객체에는 상태와 동작이 있습니다. 예를 들어, 개는 색깔, 이름, 품종 등의 상태를 갖고 있고, 흔들고, 짖고, 먹는 등의 행동을 가지고 있습니다. 객체는 클래스의 인스턴스입니다.

  • 클래스 - 클래스는 동작을 설명하고 지원되는 개체의 유형을 표시하기 위해 템플릿/청사진으로 정의할 수 있습니다.

  • 방법 - 방법은 본질적으로 작업입니다. 클래스에는 여러 메서드가 포함될 수 있습니다. 로직이 작성되고, 데이터가 조작되고, 모든 작업이 수행되는 방식입니다.

  • 필드(Fields) - 모든 개체에는 필드라고 불리는 고유한 임시 변수 세트가 있습니다. 객체의 상태는 이러한 필드에 할당된 값에 의해 생성됩니다.

첫 번째 Scala 프로그램:

대화형 모드 프로그래밍:

스크립트 파일을 매개변수로 전달하지 않고 인터프리터를 호출하면 다음 프롬프트가 표시됩니다:

C:>scalaWelcome to Scala version 2.9.0.1Type in expressions to have them evaluated.Type :help for more information.scala>

      Scala 프롬프트에 다음 텍스트를 입력하고 Enter를 누르세요.

scala> println("Hello, Scala!");

그러면 다음과 같은 결과가 생성됩니다:

Hello, Scala!

스크립트 모드 프로그래밍:

간단한 문장을 인쇄하는 간단한 코드를 살펴보겠습니다: Hello, World!

object HelloWorld {   /* This is my first java program.  
    * This will print 'Hello World' as the output
    */   def main(args: Array[String]) {
      println("Hello, world!") // prints Hello World   }}

파일을 저장하고, 프로그램을 컴파일하고 실행하는 방법을 살펴보겠습니다. 아래 단계를 따르십시오.

  1.                 메모장을 열고 위의 코드를 추가하세요.

  2. 파일을 HelloWorld.scala로 저장합니다.

  3. 명령 프롬프트 창을 열고 프로그램 파일을 저장한 디렉터리로 변경합니다. C:>

  4.                      "scalac HelloWorld.scala"를 입력하고 Enter를 눌러 코드를 컴파일합니다. 코드에 오류가 없으면 명령 프롬프트가 자동으로 다음 줄로 넘어갑니다.

  5. 위 명령은 현재 디렉터리에 여러 클래스 파일을 생성합니다. 이름 중 하나는 HelloWorld.class입니다. JVM(Java Virtual Machine)에서 실행될 수 있는 바이트코드입니다.

  6. 이제 "scala HelloWorld"를 입력하여 프로그램을 실행하세요.

  7. 창에 "Hello, World!"가 인쇄되어 있는 것을 볼 수 있습니다.

아아앙

기초문법

Scala 프로그램에 관해서는 다음 사항에 주의하는 것이 매우 중요합니다.

  • 대소문자 구분 - Scala는 대소문자를 구분합니다. 즉, Hello와 hello 식별자는 Scala에서 서로 다른 의미를 가집니다.

  • 클래스 이름 - 모든 클래스 이름의 첫 글자를 대문자로 표기합니다.

    클래스 이름을 구성하기 위해 여러 단어를 사용해야 하는 경우 각 단어의 첫 글자를 대문자로 표시합니다.

    예: class MyFirstScalaClass

  • 메소드 이름 - 모든 메소드 이름의 첫 글자는 소문자입니다.

    메소드 이름을 구성하기 위해 여러 단어가 사용되는 경우 각 단어의 첫 글자를 대문자로 사용해야 합니다.

    예: def myMethodName()

  • 프로그램 파일 이름 - 프로그램 파일 이름은 개체 이름과 정확히 일치해야 합니다.

    파일을 저장할 때 객체 이름을 사용하여 저장해야 하며(Scala는 대소문자를 구분함) 파일 확장자로 ".scala"를 추가해야 합니다. (파일 이름과 개체 이름이 일치하지 않으면 프로그램이 컴파일되지 않습니다.)

    예: "HelloWorld"가 개체의 이름이라고 가정합니다. 그런 다음 파일은 'HelloWorld.scala"로 저장되어야 합니다.

  • def main(args: Array[String]) - Scala 프로그램은 main( ) 메소드, 이는 모든 Scala 프로그램의 필수 프로그램 진입 부분입니다. 스칼라 수정자:

  • 모든 Scala 구성요소에는 이름이 필요합니다. 객체, 클래스, 변수 및 메소드 이름을 사용하는 것을 식별자라고 합니다. 식별자는 키워드를 사용할 수 없으며 식별자는 대소문자를 구분합니다. Scala는 다음 네 가지 유형 식별자를 지원합니다.

리터럴 식별자

영숫자 식별자는 문자 또는 밑줄로 시작하며 문자, 숫자 또는 밑줄을 사용할 수 있습니다. "$" 문자는 Scala의 예약어이므로 식별자에 사용할 수 없습니다. 다음은 유효한 알파벳 식별자입니다:

C:> scalac HelloWorld.scala
C:> scala HelloWorldHello, World!

다음은 불법적인 식별자입니다:

으으으으으

          운영자 식별자

운영자 식별자는 하나 이상의 운영자 문자로 구성됩니다. 작업 문자는 +, :, ?, ~ 또는 #과 같은 인쇄 가능한 ASCII 문자입니다. 다음은 합법적인 운영자 식별자입니다:

age, salary, _value,  __1_value

Scala 컴파일러는 연산자 식별자를 내부적으로 "롤링"하여 $ 문자를 포함하는 유효한 Java 식별자가 되도록 합니다. 예를 들어 식별자:->는 내부적으로 $colon$minus$greater로 표시됩니다.

혼합 식별자

혼합 식별자는 영숫자 식별자와 밑줄 및 연산자로 식별됩니다. 다음은 합법적인 혼합 식별자입니다:

$salary, 123abc, -salary

여기서 unary_+는 단항 + 연산자를 정의하기 위한 메소드 이름으로 사용되며, myvar_=는 할당 연산자를 정의하기 위한 메소드 이름으로 사용됩니다.

직접 식별자

리터럴 식별자는 백틱(` . . .`)으로 묶인 문자열입니다. 다음은 법적 텍스트 태그입니다:

+ ++ ::: <?> :>

스칼라 키워드:

다음 목록은 Scala의 예약어를 보여줍니다. 이러한 예약된 키워드는 상수, 변수 또는 기타 식별자 이름으로 사용할 수 없습니다.

를 위해
                        초록                        케이스                        잡아                        수업
                        데프                        해라                        그 외                        연장
                        거짓                        최종                        드디어                       
                        forSome                        만일                        암시적                        가져오기
                        게으르다                        경기                        새로운                        null
                        객체                        무시                        패키지                        비공개
                        보호됨                        복귀                        밀봉                        슈퍼
                        이거                        던지기                        특성                        시도해 보세요
                        맞다                        유형                        발                        변수
                        하면서                        와 함께                        수확량                         
                        -                        :                        =                        =>
                        <-                        <:                        <%                        >:
                      #                     @                                              

스칼라의 댓글

Scala는 Java와 마찬가지로 한 줄 주석과 여러 줄 주석을 지원합니다. 여러 줄 주석은 중첩될 수 있지만 올바르게 중첩되어야 합니다. Scala 컴파일러는 사용 가능한 모든 주석과 모든 문자를 무시합니다.

아아아아

빈 줄과 공백:

주석과 함께 공백만 포함된 줄을 빈 줄이라고 하며 Scala는 이를 완전히 무시합니다. 태그는 공백 및/또는 설명으로 구분할 수 있습니다.

줄 바꿈:

Scala는 줄 지향 언어이며 명령문은 세미콜론(;) 또는 개행 문자로 끝날 수 있습니다. 명령문 끝의 세미콜론은 일반적으로 선택 사항입니다. 한 줄에 단독으로 나타나는 경우 원하는 문을 입력할 수 있습니다. 반면, 한 줄에 여러 문장을 작성하는 경우에는 세미콜론이 필요합니다:

unary_+,  myvar_=

                 스칼라 패키지:

패키지는 코드명 모듈입니다. 예를 들어 Lift 유틸리티 패키지 net.liftweb.util이 있습니다. 패키지 선언은 아래와 같이 소스 파일에서 주석이 아닌 첫 번째 줄입니다.

`x` `<clinit>` `yield`

Scala 패키지를 가져와서 현재 컴파일 범위 내에서 참조할 수 있습니다. 다음 명령문은 가져온 scala.xml 패키지의 내용입니다.

object HelloWorld {   /* This is my first java program.  
    * This will print 'Hello World' as the output
    * This is an example of multi-line comments.
    */   def main(args: Array[String]) {      // Prints Hello World      // This is also an example of single line comment.
      println("Hello, world!") 
   }}

캡슐화된 클래스 및 객체를 가져올 수 있습니다. 예를 들어 scala.collection.mutable에서 HashMap을 가져올 수 있습니다.

아아아아

단일 캡슐화된 scala.collection.immutable 패키지에서 여러 클래스 또는 객체를 가져올 수 있습니다(예: TreeMap 및 TreeSet):

val s = "hello"; println(s)