Latest web development tutorials

Scala พื้นฐานไวยากรณ์

หากคุณเป็นโปรแกรม Java ก่อนและเรียนรู้พื้นฐานของภาษา Java เพื่อให้คุณได้อย่างรวดเร็วสามารถเรียนรู้พื้นฐานไวยากรณ์สกาล่า

Scala และ Java ความแตกต่างที่ใหญ่ที่สุดคือ: Scala อัฒภาคในตอนท้ายของคำสั่งนั้นเป็นตัวเลือก

เราสามารถคิดของโปรแกรม Scala เป็นคอลเลกชันของวัตถุโดยการโทรแต่ละวิธีการที่จะใช้การส่งข้อความ ต่อไปเรามาทำความเข้าใจชั้นแนวคิดของวัตถุวิธีตัวแปรเช่นนี้:

  • วัตถุ - วัตถุที่มีคุณสมบัติและพฤติกรรมตัวอย่างเช่น: แอตทริบิวต์สุนัขที่ชอบ: สีชื่อพฤติกรรม: โทรเรียกใช้กินและอื่น ๆ วัตถุที่เป็นตัวอย่างของชั้นเรียน

  • ชั้น - ชั้นเป็นวัตถุที่เป็นนามธรรมและวัตถุนั้นเป็นกรณีเฉพาะของชั้น

  • วิธี - วิธีการอธิบายในพระราชบัญญัติขั้นพื้นฐานระดับสามารถมีหลายวิธี

  • Fields - วัตถุแต่ละคนมีชุดที่เป็นเอกลักษณ์ของตัวเองของตัวแปรเช่น ได้แก่ สาขาคุณสมบัติของวัตถุที่ได้รับมอบหมายผ่านสนามที่จะสร้าง


โปรแกรม Scala แรก

การเขียนโปรแกรมแบบโต้ตอบ

การเขียนโปรแกรมแบบโต้ตอบไม่จำเป็นต้องสร้างไฟล์สคริปต์คุณสามารถเรียกใช้คำสั่งต่อไปนี้:

$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1 + 1
res0: Int = 2

scala> println("Hello World!")
Hello World!

scala> 

รูปแบบสคริปต์

นอกจากนี้เรายังสามารถสร้างไฟล์ HelloWorld.scala สั่งรันโค้ดรหัส HelloWorld.scala ดังนี้

object HelloWorld {
   /* 这是我的第一个 Scala 程序
    * 以下程序将输出'Hello World!' 
    */
   def main(args: Array[String]) {
      println("Hello, world!") // 输出 Hello World
   }
}

ต่อไปเราจะใช้คำสั่ง scalac รวบรวม:

$ scalac HelloWorld.scala 
$ ls
HelloWorld$.class	HelloWorld.scala
HelloWorld.class	

หลังจากรวบรวมเราสามารถมองเห็นไดเรกทอรีที่สร้างขึ้นภายใต้ไฟล์ HelloWorld.class ที่สามารถทำงานบนโปรแกรม Java Virtual Machine (JVM) บน

หลังจากรวบรวมเราสามารถใช้คำสั่งต่อไปที่จะดำเนินการโปรแกรม:

$ scala HelloWorld
Hello, world!
ตัวอย่างออนไลน์ >>

ไวยากรณ์พื้นฐาน

Scala ไวยากรณ์ขั้นพื้นฐานทราบต่อไปนี้:

  • case-sensitive - สกาล่าเป็นกรณีซึ่งหมายความว่าโลโก้ Hello Hello และมีความหมายที่แตกต่างกันใน Scala

  • ชื่อคลาส - สำหรับทุกชื่อชั้นตัวอักษรตัวแรกควรเป็นตัวพิมพ์ใหญ่

    หากคุณจำเป็นต้องใช้คำไม่กี่คำจะเป็นชื่อชั้น, ตัวอักษรตัวแรกของแต่ละคำนิยาม

    ตัวอย่าง: ระดับ MyFirstScalaClass

  • ชื่อวิธี - ตัวอักษรตัวแรกของชื่อวิธีการทั้งหมดพิมพ์เล็ก

    หากคำหลายคำที่ใช้ในการก่อให้ชื่อของวิธีที่ตัวอักษรตัวแรกของแต่ละคำควรเป็นตัวพิมพ์ใหญ่

    ตัวอย่าง: def myMethodName ()

  • ชื่อไฟล์ - ชื่อของแฟ้มโปรแกรมที่ว่าควรตรงกับชื่อของวัตถุ

    เมื่อคุณบันทึกไฟล์ก็ควรบันทึกชื่อวัตถุที่ใช้ (จำ Scala เป็นกรณี) และผนวก ".scala" นามสกุลไฟล์ (ถ้าชื่อไฟล์และวัตถุชื่อไม่ตรงกับโปรแกรมจะไม่รวบรวม)

    ตัวอย่าง: สมมติว่า "HelloWorld" เป็นชื่อของวัตถุ แล้วไฟล์จะถูกบันทึกไว้เป็น 'HelloWorld.scala "

  • def หลัก (args อาร์เรย์ [สตริง ]) - กาลา โปรแกรมจากหลัก () วิธีการเริ่มต้นการประมวลผลซึ่งเป็นส่วนจำเป็นของแต่ละโปรแกรมรายการโปรแกรม Scala


ตัวบ่งชี้

Scala สามารถใช้สองรูปแบบของตัวระบุตัวอักษรดิจิตอลและสัญลักษณ์

การใช้ตัวอักษรและตัวเลขต้นด้วยตัวอักษรหรือขีดความสามารถตามตัวอักษรหรือตัวเลข "$" เป็นสัญลักษณ์ใน Scala ยังถูกมองว่าเป็นตัวอักษร อย่างไรก็ตามการใช้ตัวบ่งชี้ที่ใช้ในการ "$" จุดเริ่มต้นของตัวระบุสงวน Scala คอมไพเลอร์ควรหลีกเลี่ยงการใช้ "$" เริ่มต้นระบุเพื่อหลีกเลี่ยงความขัดแย้ง

Scala และ Java ตั้งชื่อการประชุมโดยใช้อูฐการตั้งชื่อที่คล้ายกันตัวพิมพ์เล็กตัวอักษรตัวแรกเช่น toString ชื่อชั้นตัวแรกหรือตัวพิมพ์ใหญ่ นอกจากนี้ควรหลีกเลี่ยงเพื่อเน้นย้ำในตอนท้ายของตัวระบุเพื่อหลีกเลี่ยงการชน ระบุสัญลักษณ์ประกอบด้วยหนึ่งหรือมากกว่าสัญลักษณ์เช่น +: ฯลฯ เช่น:

+ ++ ::: < ?> :->

มันจะใช้ตัวระบุหนีเมื่อ Scala การดำเนินงานภายในเช่น: -> ใช้ $ ลำไส้ใหญ่ $ $ ลบมากขึ้นเพื่อเป็นตัวแทนของสัญลักษณ์ ดังนั้นหากคุณต้องการในการเข้าถึงรหัส Java: -> วิธีการที่คุณต้องใช้ Scala ชื่อภายในลำไส้ใหญ่ $ $ $ ลบมากขึ้น

ระบุตัวอักษรและตัวเลขผสมจากตัวระบุตามมาในภายหลังโดยหนึ่งหรือมากกว่าสัญลักษณ์เช่น Scala unary_ ชื่อ + วิธีการสำหรับเวลาการดำเนินงานภายใน ระบุตัวอักษรสำหรับสตริง "ถูกกำหนดไว้สำหรับ example` x`` yield`

คุณสามารถใช้ระบุ Scala ถูกต้องใด ๆ ในระหว่าง "สกาล่าจะถูกตีความเป็นตัวระบุ Scala, การใช้งานทั่วไปสำหรับหัวข้อของวิธีอัตราผลตอบแทนใน Scala คุณไม่สามารถใช้ Thread.yield () เป็นเพราะผลผลิตของ Scala คำหลักที่คุณต้องใช้ Thread.`yield` () เพื่อใช้วิธีนี้


คำหลักกาลา

ตารางต่อไปนี้แสดง Scala คำสงวนที่เราไม่สามารถใช้คำหลักดังต่อไปนี้เป็นตัวแปร:

นามธรรม กรณี จับ ชั้น
def ทำ อื่น ขยาย
เท็จ สุดท้าย ในที่สุด สำหรับ
forsome ถ้า โดยปริยาย นำเข้า
สันหลังยาว การแข่งขัน ใหม่ โมฆะ
วัตถุ เอาชนะ บรรจุภัณฑ์ ส่วนตัว
มีการป้องกัน กลับ ที่ปิดผนึก ซุปเปอร์
นี้ โยน ลักษณะนิสัย ความพยายาม
จริง ชนิด Val var
ในขณะที่ กับ ผล
- : = =>
<- <: <% >:
# แอท

ความคิดเห็นสกาล่า

Scala คล้ายกับหลาย Java สนับสนุนความเห็นบรรทัดเดียว ความคิดเห็นหลายสายสามารถซ้อนกัน แต่ต้องซ้อนกันอย่างถูกต้องความคิดเห็นที่ขึ้นต้นด้วยสัญลักษณ์ที่สอดคล้องกันที่จะยุติสัญลักษณ์ หมายเหตุ Scala คอมไพเลอร์จะถูกละเว้นตัวอย่างดังต่อไปนี้:

object HelloWorld {
   /* 这是一个 Scala 程序
    * 这是一行注释
    * 这里演示了多行注释
    */
   def main(args: Array[String]) {
      // 输出 Hello World
      // 这是一个单行注释
      println("Hello, world!") 
   }
}

บรรทัดว่างและช่องว่าง

เพียงคนเดียวที่สอดคล้องกับพื้นที่หรือความคิดเห็น Scala จะคิดว่ามันเป็นบรรทัดว่างก็จะไม่สนใจมัน Marks สามารถเป็นช่องว่างหรือความเห็นที่จะแยก


ขึ้นบรรทัดใหม่

Scala เป็นภาษาสายที่มุ่งเน้นคำสั่งด้วยเครื่องหมายอัฒภาค (;) หรือสิ้นแบ่งบรรทัด โปรแกรมกาลาอัฒภาคในตอนท้ายของคำสั่งที่มักจะเป็นตัวเลือก หากคุณมีความยินดีที่จะป้อนหนึ่ง แต่ถ้ามีเพียงหนึ่งบรรทัดในงบหรือไม่เขียน ในทางตรงกันข้ามถ้าคุณเขียนคำสั่งหลายในแถวเพื่ออัฒภาคเป็นสิ่งจำเป็น เช่น

val s = "本教程"; println(s)

แพคเกจสกาลา

แพคเกจที่กำหนดเอง

Scala ถูกกำหนดโดยใช้แพคเกจแพคเกจคำหลักในรหัส Scala เพื่อกำหนดแพคเกจในสองวิธี

วิธีแรกและ Java เช่นเดียวกับในส่วนหัวของแฟ้มกำหนดชื่อแพคเกจวิธีนี้ทำตามรหัสทั้งหมดจะถูกวางไว้ในหนังสือพิมพ์ ตัวอย่างเช่น:

package com.w3big
class HelloWorld

วิธีที่สองคือค่อนข้างคล้ายกับ C # เช่น:

package com.w3big {
  class HelloWorld 
}

วิธีที่สองคุณสามารถกำหนดหลายแพคเกจในแฟ้ม

อ้างอิง

Scala ใช้แพคเกจการอ้างอิงคำหลักที่นำเข้า

import java.awt.Color  // 引入Color
 
import java.awt._  // 引入包内所有成员
 
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
  ...  // 因为引入了java.awt,所以可以省去前面的部分
}

งบนำเข้าสามารถปรากฏที่ใดก็ได้ไม่เพียง แต่ที่ด้านบนของไฟล์ ผลจากการนำเข้าขยายไปยังจุดสิ้นสุดของบล็อกคำสั่ง นี้อย่างมีนัยสำคัญสามารถลดโอกาสในการเกิดความขัดแย้งชื่อ

หากคุณต้องการที่จะแนะนำแพคเกจของสมาชิกหลายคนที่คุณสามารถใช้ตัวเลือก (ตัวเลือก):

import java.awt.{Color, Font}
 
// 重命名成员
import java.util.{HashMap => JavaHashMap}
 
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了

หมายเหตุ: โดยค่าเริ่มต้น Scala เสมอแนะนำ java.lang._, scala._ และ Predef._ นี่คุณยังสามารถอธิบายได้ว่าทำไมหัว Scala ของแพ็กเก็ตเมื่อใช้ Scala มีเว้น