스칼라 소개
2512 단어 algorithmsjavascriptprogramming
먼저 Scala가 변수를 다루는 방법을 살펴보는 것으로 시작합니다. 스칼라는 모든 값이 객체라는 점에서 객체 지향 언어입니다. 즉, 모든 값에 유형이 있을 수 있습니다. 이러한 유형은 최상위 수준에 "Any"상위 유형이 있는 계층 구조에 속합니다. Any는 toString 또는 equals와 같이 모든 값에 적용할 수 있는 몇 가지 보편적인 메서드를 정의하는 데 사용됩니다. 아래 다이어그램은 계층 구조의 모양을 설명합니다.
위에서 Any 슈퍼클래스에는 AnyVal과 AnyRef라는 두 개의 즉각적인 서브클래스가 있음을 알 수 있습니다. 자바스크립트의 관점에서 AnyVal 클래스는 단순한 데이터 유형으로, AnyRef는 복잡한 데이터 유형으로 생각할 수 있습니다. AnyVal 유형은 null을 허용하지 않으며 Scala의 모든 함수에는 일종의 반환 값이 필요하기 때문에 Unit 유형은 본질적으로 함수에서 반환될 수 있는 자리 표시자입니다. 값이 아닌 모든 유형은 AnyRef 유형과 사용자 정의 유형입니다. 계층 구조의 맨 아래에는 "Nothing"유형과 Null이 있습니다. Nothing은 모든 유형의 하위 유형이며 값이 없습니다. 일반적으로 표현식이 값을 생성하지 않거나 메서드가 정상적으로 반환되지 않는다는 신호를 보내는 데 사용됩니다. Null은 모든 참조 유형의 하위 유형이며 "null"키워드의 리터럴 값을 갖습니다. Null은 Java에 Nothing 하위 유형이 없으므로 사용해서는 안 되므로 Java 코드로 작업하는 방법으로 Scala에서 사용할 수 있습니다.
Scala에서 객체 생성은 객체 생성을 위한 청사진 역할을 하는 클래스를 정의하여 수행됩니다. 클래스 이름은 대문자로 표시되며 "new"키워드로 인스턴스화됩니다. 클래스에는 값, 개체, 특성, 변수, 메서드 및 기타 클래스가 포함될 수 있습니다. 클래스에 정의된 이러한 각 속성을 클래스의 "멤버"라고 합니다. 아래 코드를 고려하십시오.
class Person(var name: String, var age: Int) {
def talk(words : String){ //Return type is a string
println(words)
}
# use the class
val zack = new Person("Zack", 35)
zack.name // "Zack"
zack.age // 35
zack.talk("Hello there!") // "Hello there!"
여기서 우리는 세 개의 멤버가 있는 Person이라는 클래스를 정의했습니다. name, age 및 talk라는 메서드입니다. 변수는 "var"키워드로 선언되며 변경 가능합니다. "val"키워드로 선언했다면 자바스크립트의 const 키워드와 마찬가지로 값을 변경할 수 없습니다. talk 메서드는 "def"키워드로 선언하고 내장된 "println"메서드로 텍스트 줄을 단순히 출력하는 함수입니다. 클래스의 각 멤버에는 선언될 때 정의된 값이 있고 메서드에는 미리 비슷하게 정의된 반환 값이 있습니다.
요컨대, Java는 강력한 유형의 언어이며 Scala도 유형이 지정되지만 더 유연하고 독단적이고 의견이 없는 프로그래밍 언어 스펙트럼의 중간으로 향하는 산업 전반의 전환을 암시합니다. 이러한 변화는 표현력이 뛰어나고 버그가 발생하지 않는 코드에 대한 열망에서 비롯되었습니다. 하나가 다른 하나를 위해 희생할 필요가 없으며, 특정 환경에서 어떤 언어가 가장 잘 작동하는지에 대한 대화가 더 미묘해질 미래가 다가오고 있습니다. 왜 우리는 그것을 다른 방식으로 원할까요?
Reference
이 문제에 관하여(스칼라 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zizdepski/an-introduction-to-scala-1b0a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)