การย่อหน้าที่มีความหมาย
วงเล็บปีกกาเป็นตัวเลือก
การย่อหน้าที่มีความหมาย เป็นบทเรียน Scala for Backend Engineering & Functional Programming ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Scala for Backend Engineering & Functional Programming และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Scala for Backend Engineering & Functional Programming มีบทเรียนทั้งหมด 4 บทเรียน
วงเล็บปีกกาแบบเลือกใช้ได้
Scala 3 เพิ่ม การเยื้องที่มีความหมาย หรือที่เรียกว่าไวยากรณ์ วงเล็บปีกกาแบบเลือกใช้ได้ แทนที่จะครอบบล็อกด้วย { } คุณสามารถใช้การเยื้องเพื่อกำหนดขอบเขตของบล็อกได้
- วงเล็บปีกกายังคงใช้ได้และถูกต้องสมบูรณ์
- โค้ดที่ใช้การเยื้องอ่านสะอาดตาและคล้าย Python
object Main:
def main(args: Array[String]): Unit =
println("No braces needed")เนื้อหาเมธอดแบบเยื้อง
เนื้อหาเมธอดที่ตามหลัง = สามารถเป็นบล็อกที่เยื้องได้ ทุกคำสั่งที่อยู่ในระดับการเยื้องเดียวกันจะเป็นส่วนหนึ่งของเนื้อหานั้น
นิพจน์สุดท้าย คือค่าที่ส่งกลับ
object Main:
def square(x: Int): Int =
val result = x * x
result
def main(args: Array[String]): Unit =
println(square(5))นิพจน์ if แบบเยื้อง
โครงสร้างควบคุมใช้ไวยากรณ์แบบใหม่ที่กระชับ หลัง if cond then ให้เยื้องสาขา และจัด else ให้อยู่ระดับเดียวกับ if
- รูปแบบที่ไม่มีวงเล็บปีกกาจำเป็นต้องมี
then - ไม่จำเป็นต้องใส่วงเล็บรอบเงื่อนไข
object Main:
def main(args: Array[String]): Unit =
val n = 7
val label =
if n % 2 == 0 then "even"
else "odd"
println(label)ลูป for แบบเยื้อง
ลูป for ใช้ do สำหรับผลข้างเคียง หรือใช้ yield เพื่อสร้างคอลเลกชัน โดยทั้งสองแบบใช้การเยื้อง
object Main:
def main(args: Array[String]): Unit =
for i <- 1 to 3 do
println(s"line $i")
val doubled =
for i <- 1 to 3 yield i * 2
println(doubled)ลูป while แบบเยื้อง
ลูป while ใช้ do ตามด้วยบล็อกที่เยื้อง ในรูปแบบวงเล็บปีกกาแบบเลือกใช้ได้
object Main:
def main(args: Array[String]): Unit =
var i = 0
while i < 3 do
println(s"i = $i")
i += 1นิพจน์ match แบบเยื้อง
การจับคู่รูปแบบเหมาะกับการใช้การเยื้องโดยธรรมชาติ ส่วนคำสั่ง case จะเยื้องอยู่ใต้ match
object Main:
def describe(n: Int): String =
n match
case 0 => "zero"
case 1 => "one"
case _ => "many"
def main(args: Array[String]): Unit =
println(describe(1))
println(describe(9))เนื้อหาของคลาสและ trait
คลาส trait และออบเจกต์สามารถละวงเล็บปีกกาได้เช่นกัน เครื่องหมายโคลอน : หลังส่วนหัวจะเปิดเนื้อหาที่เยื้อง
class Point(x: Int, y: Int):
def show: String = s"($x, $y)"
object Main:
def main(args: Array[String]): Unit =
println(Point(2, 3).show)เครื่องหมาย end
สำหรับบล็อกที่เยื้องยาว คุณสามารถเพิ่ม เครื่องหมาย end เพื่อระบุให้ชัดเจนว่าคำจำกัดความสิ้นสุดที่ใด ช่วยให้อ่านเมธอดหรือคลาสขนาดใหญ่ได้ง่ายขึ้น
- รูปแบบ:
end <name>หรือend if,end whileเป็นต้น - เป็นตัวเลือกและคอมไพเลอร์จะตรวจสอบให้
object Main:
def greet(name: String): String =
val msg = s"Hello, $name"
msg
end greet
def main(args: Array[String]): Unit =
println(greet("Ada"))
end main
end Mainการผสมวงเล็บปีกกากับการเยื้อง
คุณสามารถ ผสมทั้งสองรูปแบบได้อย่างอิสระ บางทีมเลือกใช้วงเล็บปีกกาเพื่อความชัดเจนในกรณีที่มีการซ้อนหลายชั้น กฎการเยื้องจะบังคับใช้เฉพาะบริเวณที่ไม่มีวงเล็บปีกกา
object Main:
def main(args: Array[String]): Unit = {
val xs = List(1, 2, 3)
val total =
xs.foldLeft(0)((acc, x) => acc + x)
println(total)
}ข้อผิดพลาดทั่วไปจากการเยื้อง
การเยื้องมีความหมาย ดังนั้นควรใช้อย่างสม่ำเสมอ
- ใช้ช่องว่าง อย่าผสมแท็บกับช่องว่าง
- บรรทัดที่เยื้องไม่ตรงอาจหลุดออกจากบล็อกโดยไม่สังเกตเห็น
- เนื้อหาของแม่แบบ (คลาส/ออบเจกต์) ต้องใช้เครื่องหมายโคลอน
:แต่เนื้อหาเมธอดที่ตามหลัง=ไม่ต้องใช้
object Main:
def main(args: Array[String]): Unit =
val items = List("a", "b")
items.foreach: item =>
println(item.toUpperCase)ไวยากรณ์อาร์กิวเมนต์ที่ใช้วงเล็บปีกกาน้อยลง
Scala 3 ยังอนุญาตให้ส่งอาร์กิวเมนต์แบบบล็อกหลังเครื่องหมายโคลอนได้ items.foreach: x => จะเปิดเนื้อหาลัมบ์ดาที่เยื้อง ทำให้ไม่ต้องซ้อนวงเล็บและวงเล็บปีกกา
object Main:
def main(args: Array[String]): Unit =
val nums = List(1, 2, 3, 4)
val evens = nums.filter: n =>
n % 2 == 0
println(evens)ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจเรื่องการเยื้องที่มีความหมาย
สรุป
คุณได้เรียนรู้การเยื้องที่มีความหมายใน Scala 3
- บล็อกสามารถใช้การเยื้องแทน
{ }ได้ - โครงสร้างควบคุมใช้
then,doและyield - เนื้อหาของคลาส/ออบเจกต์/trait เปิดด้วยเครื่องหมายโคลอน
: - เครื่องหมาย
endช่วยระบุขอบเขตของบล็อกยาว - สามารถผสมทั้งสองรูปแบบได้ แต่ควรเว้นวรรคอย่างสม่ำเสมอ
object Main:
def main(args: Array[String]): Unit =
for i <- 1 to 2 do
if i == 1 then println("first")
else println("second")
end main
end Mainเรียนรู้ Scala ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 39
- บทเรียน
- 143
คำถามที่พบบ่อย
บทเรียน “การย่อหน้าที่มีความหมาย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การย่อหน้าที่มีความหมาย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Scala for Backend Engineering & Functional Programming ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Scala for Backend Engineering & Functional Programming มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การย่อหน้าที่มีความหมาย”
วงเล็บปีกกาเป็นตัวเลือก คุณปฏิบัติ Scala for Backend Engineering & Functional Programming ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Scala for Backend Engineering & Functional Programming หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Scala for Backend Engineering & Functional Programming บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การย่อหน้าที่มีความหมาย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Scala for Backend Engineering & Functional Programming นี้ได้ไหม
ได้ บทเรียน Scala for Backend Engineering & Functional Programming ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การย่อหน้าที่มีความหมาย
- อีนัมใน Scala 3
- ชนิดข้อมูลทึบแสง
- ชนิดข้อมูลยูเนียนและอินเตอร์เซกชัน