Scala สำหรับลูป | สำหรับลูปในสกาล่า: อธิบายแล้ว
เผยแพร่แล้ว: 2021-02-19ใน Scala for-loop เรียกอีกอย่างว่า for -comprehensions สามารถใช้เพื่อทำซ้ำ กรอง และส่งคืนคอลเลกชั่นที่ซ้อม for-comprehension ดูค่อนข้างคล้ายกับ for-loop ในภาษาที่ จำเป็น อย่างไรก็ตาม ความแตกต่างก็คือมันรวบรวมรายการผลลัพธ์ของการสะกดคำ
for-loop ใน Scala มีหลายรูปแบบ ดังที่อธิบายไว้ด้านล่าง:
สารบัญ
For-Loop กับ Ranges
ไวยากรณ์
ไวยากรณ์ที่ไม่ซับซ้อนที่สุดของ for-loop ที่มีช่วงใน Scala แสดงไว้ด้านล่าง:
สำหรับ (var x <- ช่วง){
คำสั่ง;
}
ดังที่แสดงไว้ข้างต้น ช่วง อาจเป็นช่วงของตัวเลขใดๆ ซึ่งแสดงเป็น i ถึง j หรือบาง ครั้ง อาจเหมือนกับ i จนถึง j โอเปอเรเตอร์ ← ลูกศรซ้ายเรียกว่าตัว สร้าง เพราะมันสร้างค่าแต่ละรายการจากช่วง
อีกทางหนึ่งยังสามารถใช้ไวยากรณ์:
สำหรับ (w <- ช่วง){
//รหัส..
}
ในที่นี้ w คือตัวแปร ตัวดำเนินการเครื่องหมายลูกศรซ้าย ← คือตัวสร้าง และ ช่วง คือค่าที่เก็บค่าเริ่มต้นและค่าสิ้นสุด ช่วงจะแสดงโดยใช้ i ถึง j หรือ i จนถึง j
ตัวอย่าง Scala For-Loop โดยใช้คำหลัก 'to'
การใช้ 'to' ด้วย for-loop จะ รวมทั้งค่าเริ่มต้นและค่าสิ้นสุด ในตัวอย่างที่แสดงด้านล่าง เราสามารถใช้ 'to' สำหรับการพิมพ์ค่าระหว่าง 0 ถึง n กล่าวอีกนัยหนึ่ง การวนซ้ำเริ่มต้นจาก 0 และสิ้นสุดที่ 10 ซึ่งหมายความว่าเราสามารถพิมพ์เลขหน้า 0 ถึง 10
// โปรแกรม Scala สาธิตวิธีการ
// สร้างลูปโดยใช้to
วัตถุหลัก
{
def main(args: Array[String])
{
println("ค่าของ w คือ:");
// ในที่นี้ for loop เริ่มต้นจาก 0
// และสิ้นสุดที่ 10
สำหรับ (w <- 0 ถึง 10)
{
println(w);
}
}
}
เอาท์พุท:
ในตัวอย่างที่แสดงด้านบน ค่าของ w คือ:
0
1
2
3
4
5
6
7
8
9
10
อ่าน: 10 สุดยอดทักษะในการเป็นนักพัฒนาเต็มรูปแบบ
ตัวอย่าง Scala For-Loop โดยใช้คำหลัก 'จนถึง'
ความแตกต่างระหว่างการใช้ จนถึง และ ถึง คือ; เพื่อ รวมค่าเริ่มต้นและค่าสิ้นสุดที่กำหนดในช่วง ในขณะที่ จนถึง ไม่รวมค่าสุดท้ายของช่วงที่กำหนด ใน ตัวอย่าง for-loop ที่ แสดงด้านล่าง เราสามารถใช้ จนถึง เพื่อพิมพ์ค่าระหว่าง 0 ถึง n-1 กล่าวอีกนัยหนึ่ง ลูปเริ่มต้นที่ 0 และสิ้นสุดที่ n-1 ซึ่งออกมาเป็น 9 ดังนั้น เราสามารถพิมพ์เลขหน้า 0 ถึง 9
// โปรแกรม Scala สาธิตวิธีการ
// สร้างสำหรับวนซ้ำโดยใช้จนถึง
วัตถุหลัก
{
def main(args: Array[String])
{
println("ค่าของ w คือ:");
// ในที่นี้ for loop เริ่มต้นจาก 0
// และสิ้นสุดที่ 10
สำหรับ (w <- 0 ถึง 10)
{
println(w);
}
}
}
เอาท์พุท:
ในตัวอย่างที่แสดงด้านบน ค่าของ w คือ:
0
1
2
3
4
5
6
7
8
9
อ่านเพิ่มเติม: Python vs Scala
ค่าหลายค่าใน For-Loop
เรายังสามารถใช้หลายช่วงใน for-loop เดียว ช่วงเหล่านี้คั่นด้วยเครื่องหมายอัฒภาค (;) ให้เราเข้าใจสิ่งนี้ด้วยความช่วยเหลือของภาพประกอบ ในตัวอย่างด้านล่าง เราได้ใช้สองช่วงที่แตกต่างกันในการวนรอบเดียว กล่าวคือ w <- 0 ถึง 3; z <- 8 ถึง 10
// โปรแกรม Scala สาธิตวิธีการ
// สร้างหลายช่วงใน for loop
วัตถุหลัก
{
def main(args: Array[String])
{
// สำหรับลูปที่มีหลายช่วง
สำหรับ( w <- 0 ถึง 3; z<- 8 ถึง 10 )
{
println("ค่าของ w คือ :" +w);
println("ค่าของ y คือ :" +z);
}
}
}
เอาท์พุท:
ค่าของ w คือ:0
ค่าของ y คือ:8
ค่าของ w คือ:0
ค่าของ y คือ:9
ค่าของ w คือ:1
ค่าของ y คือ:8
ค่าของ w คือ :1
ค่าของ y คือ:9
ค่าของ w คือ:2
ค่าของ y คือ:8
ค่าของ w คือ:2
ค่าของ y คือ:9
ค่าของ w คือ:3
ค่าของ y คือ:8
ค่าของ w คือ:3
ค่าของ y คือ:9
ชำระเงิน: เงินเดือนนักพัฒนาเต็มกองในอินเดีย
For-Loop กับคอลเลกชัน
ใน Scala เราสามารถใช้ for-loop เพื่อทำซ้ำคอลเลกชันอย่างมีประสิทธิภาพ เช่น list, sequence เป็นต้น โดยใช้ for -each loop หรือ for-comprehensions loop ไวยากรณ์ของ for-loop กับคอลเลกชัน ใน Scala ดังแสดงด้านล่าง:
ไวยากรณ์
สำหรับ (var x <- รายการ){
คำสั่ง;
}
ในที่นี้ รายการตัวแปรเป็นประเภทคอลเลกชันที่มีรายการองค์ประกอบ และ for-loop จะวน ซ้ำผ่านองค์ประกอบทั้งหมดที่ส่งคืนองค์ประกอบหนึ่งรายการในตัวแปร x ในแต่ละครั้ง
ให้เราดูโปรแกรมสาธิตด้านล่างเพื่อทำความเข้าใจ for-loop กับคอลเลก ชัน ในภาพประกอบ เราได้สร้างคอลเลกชันโดยใช้ ตัวแปร List เพื่อแสดงรายการผู้เขียนตามอันดับของพวกเขา
// โปรแกรม Scala สาธิตวิธีการ
// ใช้สำหรับวนซ้ำกับคอลเลกชัน
วัตถุหลัก
{
def main(args: Array[String])
{
อันดับ var = 0;
val ranklist = รายการ (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// สำหรับวนซ้ำกับคอลเลกชัน
สำหรับ (อันดับ <- รายการอันดับ){
println(“อันดับผู้เขียนคือ : ” +อันดับ);
}
}
}
เอาท์พุท:
อันดับผู้เขียนคือ: 1
อันดับผู้เขียนคือ: 2
อันดับผู้เขียนคือ: 3
อันดับผู้เขียนคือ: 4
อันดับผู้เขียนคือ: 5
อันดับผู้เขียนคือ: 6
อันดับผู้เขียนคือ: 7
อันดับผู้เขียนคือ: 8
อันดับผู้เขียนคือ: 9
อันดับผู้เขียนคือ: 10
For-Loop พร้อมฟิลเตอร์
For-loop ใน Scala ช่วยให้คุณสามารถกรององค์ประกอบจากคอลเลกชันที่กำหนดโดยใช้ คำสั่ง if อย่างน้อยหนึ่ง รายการ ใน for-loop ผู้ใช้ยังสามารถเพิ่มตัวกรองมากกว่าหนึ่งตัวใน นิพจน์ 'for' โดยใช้เครื่องหมายอัฒภาค (;) เพื่อแยก ตัวกรองออก รายการด้านล่างคือไวยากรณ์ for-loop พร้อม ตัว กรอง
ไวยากรณ์
สำหรับ (var x <- List
ถ้าเงื่อนไข1; ถ้าเงื่อนไข2…
){
คำสั่ง;
}
ให้เราเข้าใจสิ่งนี้ดีขึ้นด้วยความช่วยเหลือจากตัวอย่าง ภาพประกอบด้านล่างใช้ตัวกรองสองตัวเพื่อแยกคอลเล็กชันที่กำหนด ตัวอย่างเช่น ในตัวอย่างด้านล่าง ตัวกรองจะลบรายชื่อผู้เขียนที่มีอันดับที่มากกว่า 2 และน้อยกว่า 7
// โปรแกรม Scala สาธิตวิธีการ
// ใช้สำหรับวนซ้ำกับตัวกรอง
วัตถุหลัก
{
def main(args: Array[String])
{
อันดับ var = 0;
val ranklist = รายการ (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// สำหรับลูปที่มีตัวกรอง
สำหรับ ( อันดับ <- อันดับรายการ
ถ้าอันดับ <7; ถ้าอันดับ > 2 )
{
println(“อันดับผู้เขียนคือ : ” +อันดับ);
}
}
}
เอาท์พุท:
อันดับผู้เขียนคือ: 3
อันดับผู้เขียนคือ: 4
อันดับผู้เขียนคือ: 5
อันดับผู้เขียนคือ: 6
For-Loop กับ Yield
ใน Scala ค่าส่งคืนของลูปจะถูกเก็บไว้ในตัวแปรหรืออาจส่งคืนผ่านฟังก์ชัน ในการดำเนินการนี้ คุณควรเติมส่วนเนื้อหาของ นิพจน์ 'for' นำหน้าด้วย ผลลัพธ์ ของ คำหลัก รายการด้านล่างเป็นไวยากรณ์สำหรับ for-loop พร้อมผล ตอบแทน
ไวยากรณ์
var retVal = สำหรับ{ var x <- รายการ
ถ้าเงื่อนไข1; ถ้าเงื่อนไข2…
}
ผลผลิต x
หมายเหตุ - วงเล็บปีกกาแสดงรายการตัวแปรและเงื่อนไข และ retVal เป็นตัวแปรที่จะเก็บค่าทั้งหมดของ x ไว้ในรูปแบบของการรวบรวม
ให้เราเข้าใจสิ่งนี้ดีขึ้นด้วยความช่วยเหลือของภาพประกอบ ในตัวอย่างด้านล่าง ผลลัพธ์เป็นตัวแปรที่เก็บค่าอันดับทั้งหมดในรูปแบบของคอลเล็กชัน for-loop แสดงเฉพาะ ราย ชื่อผู้เขียนที่มีอันดับมากกว่า 4 และน้อยกว่า 8
// โปรแกรม Scala สาธิตวิธีการ
// ใช้สำหรับวนซ้ำกับผลตอบแทน
วัตถุหลัก
{
def main(args: Array[String])
{
อันดับ var = 0;
val ranklist = รายการ (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// สำหรับลูปที่มีผลตอบแทน
var output = สำหรับ { อันดับ <- ranklist
ถ้าอันดับ > 4; ถ้าอันดับ != 8 }
อันดับผลตอบแทน
// แสดงผล
สำหรับ (อันดับ <- เอาต์พุต)
{
println(“อันดับผู้แต่งคือ : ” + อันดับ);
}
}
}
เอาท์พุท:
อันดับผู้เขียนคือ: 5
อันดับผู้เขียนคือ: 6
อันดับผู้เขียนคือ: 7
อันดับผู้เขียนคือ: 9
อันดับผู้เขียนคือ: 10
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์แบบฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
ภาษาโปรแกรม Scala คืออะไร?
Scala เป็นภาษาโปรแกรมทั่วไปที่ออกแบบมาเพื่อแสดงรูปแบบการเขียนโปรแกรมทั่วไปในลักษณะที่กระชับ สง่างาม และปลอดภัยสำหรับการพิมพ์ เป็นภาษาลูกผสมที่ทำงานและภาษาเชิงวัตถุ รองรับโครงสร้างการเขียนโปรแกรมเชิงฟังก์ชัน เช่น ฟังก์ชันลำดับที่สูงกว่าและการประเมินแบบสันหลังยาว แต่ยังมีคุณสมบัติของภาษาเชิงวัตถุ เช่น คลาส อักษรอ็อบเจ็กต์ และการอนุมานประเภท Scala เป็นหนึ่งในภาษาที่โดดเด่นที่สุดที่ออกแบบมาสำหรับ Java Virtual Machine (JVM) แต่ยังสามารถคอมไพล์ไปยังซอร์สโค้ด JavaScript หรือใช้ .NET Common Language Runtime (CLR) ได้
ลูปในการเขียนโปรแกรมคืออะไร?
ลูปคือคำสั่งการเขียนโปรแกรมที่ทำซ้ำบล็อกของคำสั่งอีกจำนวนครั้ง (จำนวนเต็ม) ลูปมีสองประเภท — for และ while วนซ้ำบล็อกของรหัสจนกว่าจะเต็มเงื่อนไขบางอย่าง คุณสามารถใช้การวนซ้ำเพื่อทำงานเดิมซ้ำแล้วซ้ำอีกจนกว่าจะผ่านเกณฑ์ที่ระบุ ลูปมีหลายประเภท เช่น – for loop, while loop, do while loop และ foreach loop แต่ละประเภทมีข้อดีและกรณีใช้งานต่างกัน ตัวอย่างเช่น หากคุณต้องการวนซ้ำในอาร์เรย์เป็นจำนวนครั้งที่ตายตัว คุณสามารถใช้สำหรับลูปได้ หากคุณต้องการวนซ้ำตามเงื่อนไข คุณสามารถใช้ while loops หากคุณต้องการเข้าถึงองค์ประกอบของอาร์เรย์ คุณสามารถใช้ foreach loop ได้
อนาคตของภาษา Scala คืออะไร?
Scala เป็นภาษาโปรแกรมทั่วไปที่รวมเอาหลักการเขียนโปรแกรมเชิงฟังก์ชัน เป็นแพลตฟอร์มที่เป็นอิสระ Scala เป็นภาษาที่พิมพ์แบบสแตติกที่มีการอนุมานประเภท นอกจากนี้ยังอนุญาตให้เขียนโค้ดในรูปแบบเชิงวัตถุ Scala มีห้องสมุดที่หลากหลายและมีความกระชับในการเข้ารหัส ปัจจัยเหล่านี้ทำให้ Scala เป็นภาษาการเขียนโปรแกรมที่ได้รับความนิยมอย่างมาก หากคุณเป็นโปรแกรมเมอร์ Java คุณสามารถใช้ Scala ได้ง่ายขึ้น หากคุณไม่ใช่โปรแกรมเมอร์ Java และยังต้องการใช้ Scala คุณสามารถใช้ระบบล่าม Scala ได้ Scala มีชุมชนที่เติบโตอย่างรวดเร็วและการขึ้นไปสู่จุดสูงสุดในการจัดอันดับนั้นไม่ใช่เรื่องของเวลาอีกต่อไป