อ่าน 3 นาที
ช่วง (การเขียนโปรแกรมคอมพิวเตอร์)
ใน วิทยาการคอมพิวเตอร์ คำว่า " ช่วง" อาจหมายถึงสิ่งใดสิ่งหนึ่งในสามสิ่งนี้:
ช่วง (การเขียนโปรแกรมคอมพิวเตอร์)
ในวิทยาการคอมพิวเตอร์คำว่า " ช่วง"อาจหมายถึงสิ่งใดสิ่งหนึ่งในสามสิ่งนี้:
- ค่าที่เป็นไปได้ที่สามารถเก็บไว้ในตัวแปรได้
- ขอบเขตบนและขอบเขตล่างของอาร์เรย์
- ทางเลือกอื่นนอกเหนือจากตัววนซ้ำ (iterator )
ช่วงของตัวแปร
ช่วงของตัวแปรคือเซตของค่าที่เป็นไปได้ที่ตัวแปรนั้นสามารถเก็บได้ ในกรณีของจำนวนเต็ม นิยามของตัวแปรจะจำกัดอยู่เฉพาะจำนวนเต็มเท่านั้น และช่วงของตัวแปรจะครอบคลุมทุกจำนวนภายในช่วงนั้น (รวมถึงค่าสูงสุดและค่าต่ำสุด) ตัวอย่างเช่น ช่วงของ ตัวแปร จำนวนเต็ม16 บิตแบบมีเครื่องหมาย คือจำนวนเต็มทั้งหมดตั้งแต่ −32,768 ถึง +32,767
ช่วงของอาร์เรย์
เมื่ออาร์เรย์ถูกกำหนดดัชนีด้วยตัวเลข ช่วงของอาร์เรย์จะเป็นขอบเขตบนและล่างของอาร์เรย์ ขึ้นอยู่กับสภาพแวดล้อมหากโปรแกรมพยายามเข้าถึงองค์ประกอบในอาร์เรย์ที่อยู่นอกช่วง อาจเกิด คำเตือน ข้อผิดพลาดร้ายแรง หรือพฤติกรรมที่ไม่สามารถคาดเดาได้ ในบาง ภาษาโปรแกรมเช่น ภาษา Cอาร์เรย์จะมีขอบเขตล่างคงที่ (ศูนย์) และจะเก็บข้อมูลในแต่ละตำแหน่งจนถึงขอบเขตบน (ดังนั้นอาร์เรย์ที่มี 5 องค์ประกอบจะมีช่วงตั้งแต่ 0 ถึง 4) ในภาษาอื่นๆ เช่นPHPอาร์เรย์อาจมีช่องว่างที่ไม่มีการกำหนดองค์ประกอบ ดังนั้นอาร์เรย์ที่มีช่วงตั้งแต่ 0 ถึง 4 จะมี องค์ประกอบได้ สูงสุด 5 องค์ประกอบ (และต่ำสุด 2 องค์ประกอบ)
ช่วง (Range) เป็นทางเลือกแทนตัววนซ้ำ (Iterator)
ความหมายอีกประการหนึ่งของช่วงในวิทยาการคอมพิวเตอร์คือทางเลือกแทนตัววนซ้ำเมื่อใช้ในความหมายนี้ ช่วงจะถูกกำหนดเป็น "คู่ของตัววนซ้ำเริ่มต้น/สิ้นสุดที่บรรจุเข้าด้วยกัน" [ 1 ]มีการโต้แย้ง[ 1 ]ว่า "ช่วงเป็นนามธรรมที่เหนือกว่า" (เมื่อเทียบกับตัววนซ้ำ) ด้วยเหตุผลหลายประการ รวมถึงความปลอดภัยที่ดีกว่า
โดยเฉพาะอย่างยิ่ง ช่วงดังกล่าวได้รับการสนับสนุนในC++20 [ 2 ] ไลบรารี Boost C++ [ 3 ]และไลบรารีมาตรฐานD [ 4 ]
ช่วง (Range) ในฐานะชนิดข้อมูล

สามารถสร้างชนิดข้อมูลสำหรับช่วงได้โดยใช้เจเนริก
ตัวอย่างในภาษา C #
บันทึกสาธารณะช่วง< T > ( T เริ่มต้น, T สิ้นสุด) โดยที่T : IComparable ;ตัวอย่างในภาษา Kotlin
คลาสข้อมูลRange < T : Comparable < T >> ( val start : T , val end : T )ตัวอย่างในภาษา PHP
คลาสอ่านอย่างเดียวRange < T > { ฟังก์ชันสาธารณะ__construct ( public T $start , public T $end , ) {} }ตัวอย่างในภาษา Python
จากdataclasses นำเข้าdataclass@dataclass class Range [ T ]: start : T end : TRustมีโครงสร้างช่วงในตัวในไลบรารีมาตรฐานstd::ops::Range[ 5 ] C ++ ก็ มีstd::rangesไลบรารีเช่นกันตั้งแต่C++ 20 [ 6 ]
ระยะการทำงานในฐานะผู้ปฏิบัติงาน
Rustมีตัวดำเนินการ ..และ..=
let heartwarming = "heartwarming!" . to_string (); let warm = & heartwarming [ 5 .. 9 ];Zigยังมีตัวดำเนินการ .. อีกด้วย
// ในการวนซ้ำจำนวนเต็มที่ต่อเนื่องกัน ให้ใช้ไวยากรณ์ช่วงvar sum : usize = 0 ; for ( 0 .. 5 ) | i | { sum += i ; }string [] items = [ " one " , " two" , "three" , "four" ]; string [] firstThreeItems = items [ 0..2 ];[ 1 .. 4 ] // ผลลัพธ์: [1; 2; 3; 4]สำหรับ( i ใน1. . 5 ) พิมพ์( i )สำหรับ( 1 .. 5 ) { พิมพ์}PythonและPHPไม่มีตัวดำเนินการช่วง แต่มีrangeฟังก์ชัน[ 11 ] [ 12 ]
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ช่วง (การเขียนโปรแกรมคอมพิวเตอร์)
ใน วิทยาการคอมพิวเตอร์ คำว่า " ช่วง" อาจหมายถึงสิ่งใดสิ่งหนึ่งในสามสิ่งนี้:
ช่วงของตัวแปร
ช่วงของตัวแปรคือเซตของค่าที่เป็นไปได้ที่ตัวแปรนั้นสามารถเก็บได้ ในกรณีของจำนวนเต็ม นิยามของตัวแปรจะจำกัดอยู่เฉพาะจำนวนเต็มเท่านั้น และช่วงของตัวแปรจะครอบคลุมทุกจำนวนภายในช่วงนั้น (รวมถึงค่าสูงสุดและค่าต่ำสุด) ตัวอย่างเช่น ช่วงของ ตัวแปร จำนวนเต็ม 16 บิต...
ช่วงของอาร์เรย์
เมื่ออาร์เรย์ถูกกำหนดดัชนีด้วยตัวเลข ช่วงของอาร์เรย์จะเป็นขอบเขตบนและล่างของอาร์เรย์ ขึ้นอยู่กับสภาพแวดล้อมหากโปรแกรมพยายามเข้าถึงองค์ประกอบในอาร์เรย์ที่อยู่นอกช่วง อาจเกิด คำเตือน ข้อผิดพลาดร้ายแรง หรือพฤติกรรมที่ไม่สามารถคาดเดาได้ ในบาง ภาษาโปรแกรม เช่น...
ช่วง (Range) เป็นทางเลือกแทนตัววนซ้ำ (Iterator)
ความหมายอีกประการหนึ่งของ ช่วง ในวิทยาการคอมพิวเตอร์คือทางเลือกแทน ตัววนซ้ำ เมื่อใช้ในความหมายนี้ ช่วงจะถูกกำหนดเป็น "คู่ของตัววนซ้ำเริ่มต้น/สิ้นสุดที่บรรจุเข้าด้วยกัน" [ 1 ] มีการโต้แย้ง [ 1 ] ว่า "ช่วงเป็นนามธรรมที่เหนือกว่า" (เมื่อเทียบกับตัววนซ้ำ)...