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 มีชุมชนที่เติบโตอย่างรวดเร็วและการขึ้นไปสู่จุดสูงสุดในการจัดอันดับนั้นไม่ใช่เรื่องของเวลาอีกต่อไป