การกำหนดค่า ตัวแปร วิทยาการคำนวณ

การเขียนโปรแกรมด้วยภาษาไพทอน

15 Sep 2020

Mu คืออะไร ? Mu เป็นโปรแกรมสำหรับใช้เขียนภาษา Python เหมาะสำหรับผู้เริ่มต้นเขียนโปรแกรม สามารถดาวโหลดได้ที่ //codewith.mu/ การใช้งานฟังก์ชัน ฟังก์ชันคำสั่งแสดงผลทางหน้าจอ #ใช้รูปแบบ print(ข้อมูล) print("My name is Surachet") #ใช้รูปแบบ print(ข้อมูลที่มีการแทรกรหัสรูปแบบข้อมูล) firstName = "Surachet" print("My name is %s" %firstName)

ในการเขียนโปรแกรมคอมพิวเตอร์เป็นตัวแปรหรือเกลาเป็นสถานที่จัดเก็บข้อมูล (ระบุโดยอยู่หน่วยความจำ ) จับคู่กับการเชื่อมโยงชื่อสัญลักษณ์ซึ่งมีบางส่วนที่เป็นที่รู้จักหรือไม่ทราบจำนวนของข้อมูลที่เรียกว่าคุ้มค่าหรือในแง่ง่ายตัวแปรเป็นภาชนะสำหรับการที่แตกต่างกันประเภทของข้อมูล (เช่นจำนวนเต็มลอยสตริงและอื่น ๆ ... ) ชื่อตัวแปรเป็นวิธีปกติในการอ้างอิงค่าที่เก็บไว้นอกเหนือจากการอ้างอิงถึงตัวแปรเองทั้งนี้ขึ้นอยู่กับบริบท การแยกชื่อและเนื้อหานี้ช่วยให้สามารถใช้ชื่อได้โดยไม่ขึ้นกับข้อมูลที่แสดงถึง ตัวระบุในคอมพิวเตอร์รหัสที่มาสามารถนำมาผูกไว้กับค่าในช่วงเวลาทำงานและความคุ้มค่าของตัวแปรจึงอาจมีการเปลี่ยนแปลงในช่วงของการทำงานของโปรแกรม [1] [2] [3] [4]

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

สถานที่เก็บตัวแปรอาจถูกอ้างอิงโดยระบุที่แตกต่างกันหลายสถานการณ์ที่รู้จักกันเป็นaliasingการกำหนดค่าให้กับตัวแปรโดยใช้ตัวระบุตัวใดตัวหนึ่งจะเปลี่ยนค่าที่สามารถเข้าถึงได้ผ่านตัวระบุอื่น ๆ

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

การดำเนินการกับตัวแปร

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

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

ตัวแปรคือภาชนะสำหรับจัดเก็บค่า

ตัวแปรและขอบเขต:

  • ตัวแปรอัตโนมัติ : ตัวแปรท้องถิ่นแต่ละตัวในฟังก์ชันจะมีอยู่ก็ต่อเมื่อฟังก์ชันถูกเรียกใช้และจะหายไปเมื่อออกจากฟังก์ชัน ตัวแปรดังกล่าวเรียกว่าตัวแปรอัตโนมัติ
  • ตัวแปรภายนอก: ตัวแปรเหล่านี้เป็นตัวแปรภายนอกของฟังก์ชันและสามารถเข้าถึงได้โดยใช้ชื่อโดยฟังก์ชันใด ๆ ตัวแปรเหล่านี้ยังคงมีอยู่อย่างถาวร แทนที่จะปรากฏขึ้นและหายไปเมื่อมีการเรียกและออกจากฟังก์ชัน แต่จะยังคงรักษาค่าไว้แม้ว่าฟังก์ชันที่ตั้งค่าไว้จะกลับมาแล้วก็ตาม

ตัวระบุที่อ้างถึงตัวแปร

ตัวระบุที่อ้างถึงตัวแปรสามารถใช้เพื่อเข้าถึงตัวแปรเพื่ออ่านค่าหรือแก้ไขค่าหรือแก้ไขแอตทริบิวต์อื่น ๆของตัวแปรเช่นสิทธิ์การเข้าถึงการล็อกเซมาโฟร์เป็นต้น

ตัวอย่างเช่นตัวแปรอาจถูกอ้างอิงโดยตัวระบุ " total_count" และตัวแปรสามารถมีหมายเลข 1956 หากตัวแปรเดียวกันถูกอ้างอิงโดยตัวระบุ " r" เช่นกันและหากใช้ตัวระบุนี้ " r" ค่าของตัวแปรจะเป็น เปลี่ยนเป็นปี 2009 จากนั้นการอ่านค่าโดยใช้ตัวระบุ " total_count" จะให้ผลลัพธ์ของปี 2009 ไม่ใช่ปี 1956

ถ้าตัวแปรถูกอ้างอิงโดยระบุเพียงคนเดียวระบุว่าสามารถก็จะเรียกชื่อของตัวแปร ; มิฉะนั้นเราสามารถพูดได้ว่ามันเป็นหนึ่งในรายชื่อของตัวแปรตัวอย่างเช่นในตัวอย่างก่อนหน้านี้ตัวระบุ " total_count" คือชื่อของตัวแปรที่เป็นปัญหาและ " r" เป็นชื่ออื่นของตัวแปรเดียวกัน

ขอบเขตและขอบเขต

ขอบเขตของตัวแปรที่อธิบายในข้อความของโปรแกรมตัวแปรอาจถูกนำมาใช้ในขณะที่ขอบเขต (หรืออายุการใช้งาน ) อธิบายเมื่ออยู่ในการดำเนินการของโปรแกรมตัวแปรมี (ความหมาย) มูลค่า ขอบเขตของตัวแปรเป็นคุณสมบัติของชื่อของตัวแปรและขอบเขตเป็นคุณสมบัติของตัวแปรเอง เหล่านี้ไม่ควรจะสับสนกับบริบท (เรียกว่าสภาพแวดล้อม ) ซึ่งเป็นคุณสมบัติของโปรแกรมและแตกต่างกันไปโดยจุดในรหัสแหล่งที่มาหรือการดำเนินการ - ดูขอบเขต: ภาพรวม นอกจากนี้อายุการใช้งานของออบเจ็กต์อาจตรงกับอายุการใช้งานที่ผันแปร แต่ในหลาย ๆ กรณีไม่ได้เชื่อมโยงกับอายุการใช้งานตัวแปร

ชื่อของตัวแปรขอบเขตผลกระทบต่อของขอบเขต

ขอบเขตเป็นส่วนสำคัญของการแก้ไขชื่อของตัวแปร ภาษาส่วนใหญ่กำหนดขอบเขตเฉพาะสำหรับตัวแปรแต่ละตัว (เช่นเดียวกับเอนทิตีที่มีชื่ออื่น ๆ ) ซึ่งอาจแตกต่างกันไปในโปรแกรมที่กำหนด ขอบเขตของตัวแปรคือส่วนของโค้ดโปรแกรมที่ชื่อของตัวแปรมีความหมายและตัวแปรที่ระบุว่า "มองเห็นได้" การเข้าสู่ขอบเขตนั้นโดยทั่วไปจะเริ่มต้นอายุการใช้งานของตัวแปร (ตามบริบท) และการออกจากขอบเขตนั้นโดยทั่วไปจะสิ้นสุดอายุการใช้งาน (เนื่องจากไม่อยู่ในบริบท) ตัวอย่างเช่นตัวแปรที่มี " ขอบเขตคำศัพท์ " มีความหมายเฉพาะภายในฟังก์ชัน / รูทีนย่อยบางฟังก์ชันหรืออย่างละเอียดมากกว่าภายในบล็อกของนิพจน์ / คำสั่ง (ตามขอบเขตฟังก์ชันหรือขอบเขตบล็อก ) นี่คือความละเอียดคงที่สามารถดำเนินการได้ในเวลาแยกวิเคราะห์หรือเวลาคอมไพล์ หรืออีกวิธีหนึ่งคือตัวแปรที่มีขอบเขตแบบไดนามิกจะได้รับการแก้ไข ณ รันไทม์โดยขึ้นอยู่กับสแต็กการรวมโกลบอลที่ขึ้นอยู่กับโฟลว์การควบคุมเฉพาะ ตัวแปรที่สามารถเข้าถึงได้ภายในฟังก์ชันบางอย่างเท่านั้นเรียกว่า " ตัวแปรท้องถิ่น " " ตัวแปรส่วนกลาง " หรือตัวแปรที่มีขอบเขตไม่ จำกัด อาจถูกอ้างถึงที่ใดก็ได้ในโปรแกรม

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

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

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

ถือเป็นการฝึกเขียนโปรแกรมที่ดีในการทำให้ขอบเขตของตัวแปรแคบที่สุดเท่าที่จะเป็นไปได้เพื่อไม่ให้ส่วนต่างๆของโปรแกรมโต้ตอบกันโดยไม่ได้ตั้งใจโดยการปรับเปลี่ยนตัวแปรของกันและกัน การทำเช่นนี้ยังช่วยป้องกันการกระทำที่ระยะทาง เทคนิคทั่วไปสำหรับการทำเช่นนั้นจะมีส่วนที่แตกต่างกันของการใช้งานโปรแกรมที่แตกต่างกันพื้นที่ชื่อหรือเพื่อให้ตัวแปรของแต่ละบุคคล "เอกชน" ผ่านทั้งการกำหนดขอบเขตตัวแปรแบบไดนามิกหรือกำหนดขอบเขตตัวแปรศัพท์

ภาษาโปรแกรมจำนวนมากใช้ค่าที่สงวนไว้ (มักใช้ชื่อว่าnullหรือnil ) เพื่อระบุตัวแปรที่ไม่ถูกต้องหรือไม่ได้กำหนดค่าเริ่มต้น

กำลังพิมพ์

ในภาษาที่พิมพ์แบบคงที่เช่นJavaหรือMLตัวแปรจะมีประเภทด้วยซึ่งหมายความว่าสามารถเก็บค่าบางประเภทไว้ในนั้นได้เท่านั้น ตัวอย่างเช่นไม่อนุญาตให้ใช้ตัวแปรประเภท " จำนวนเต็ม " ในการจัดเก็บค่าข้อความ

ในภาษาที่พิมพ์แบบไดนามิกเช่นPythonเป็นค่าไม่ใช่ตัวแปรซึ่งเป็นประเภทพกพา ในCommon Lispมีทั้งสองสถานการณ์พร้อมกัน: ตัวแปรจะได้รับประเภท (หากไม่ได้ประกาศจะถือว่าเป็นsupertypeTสากล) ซึ่งมีอยู่ในเวลาคอมไพล์ ค่ายังมีประเภทซึ่งสามารถตรวจสอบและสืบค้นได้ที่รันไทม์

การพิมพ์ตัวแปรยังช่วยให้สามารถแก้ไขความหลากหลายได้ในเวลาคอมไพล์ อย่างไรก็ตามสิ่งนี้แตกต่างจากความหลากหลายที่ใช้ในการเรียกฟังก์ชันเชิงวัตถุ (เรียกว่าฟังก์ชันเสมือนในC ++ ) ซึ่งแก้ไขการเรียกตามประเภทค่าซึ่งตรงข้ามกับ supertypes ที่อนุญาตให้มีตัวแปรได้

ตัวแปรมักจะเก็บข้อมูลง่ายๆเช่นจำนวนเต็มและสตริงตามตัวอักษร แต่ภาษาโปรแกรมบางภาษาอนุญาตให้ตัวแปรเก็บค่าของประเภทข้อมูลอื่น ๆด้วย ภาษาดังกล่าวยังสามารถเปิดใช้งานฟังก์ชั่นที่จะpolymorphic พารา ฟังก์ชันเหล่านี้ทำงานเหมือนตัวแปรเพื่อแสดงข้อมูลหลายประเภท ตัวอย่างเช่นฟังก์ชันที่มีชื่อlengthอาจกำหนดความยาวของรายการ lengthฟังก์ชันดังกล่าวอาจเป็นพหุนามพาราเมตริกโดยการรวมตัวแปร type ไว้ในลายเซ็นประเภทเนื่องจากจำนวนองค์ประกอบในรายการไม่ขึ้นอยู่กับประเภทขององค์ประกอบ

พารามิเตอร์

พารามิเตอร์อย่างเป็นทางการ (หรือข้อโต้แย้งอย่างเป็นทางการ ) ของฟังก์ชั่นจะยังเรียกว่าเป็นตัวแปร ตัวอย่างเช่นในส่วนรหัสPythonนี้

>>> def addtwo ( x ): ... return x + 2 ... >>> addtwo ( 5 ) 7

ตัวแปรที่ชื่อxเป็นพารามิเตอร์เนื่องจากได้รับค่าเมื่อเรียกใช้ฟังก์ชัน จำนวนเต็ม 5 คืออาร์กิวเมนต์ที่ให้xค่า ในภาษาส่วนใหญ่พารามิเตอร์ฟังก์ชันมีขอบเขตเฉพาะที่ ตัวแปรเฉพาะที่ตั้งชื่อxนี้สามารถอ้างถึงได้ภายในaddtwoฟังก์ชันเท่านั้น (แม้ว่าฟังก์ชันอื่น ๆ จะมีตัวแปรที่เรียกว่าx)

การจัดสรรหน่วยความจำ

ข้อมูลจำเพาะของการจัดสรรตัวแปรและการแสดงค่าของตัวแปรนั้นแตกต่างกันอย่างมากทั้งในภาษาโปรแกรมและระหว่างการนำไปใช้งานของภาษาที่กำหนด การใช้งานภาษาจำนวนมากจะจัดสรรพื้นที่สำหรับตัวแปรโลคัลซึ่งขอบเขตจะคงอยู่สำหรับการเรียกใช้ฟังก์ชันเดียวบนcall stackและหน่วยความจำจะถูกเรียกคืนโดยอัตโนมัติเมื่อฟังก์ชันส่งคืน โดยทั่วไปในการผูกชื่อชื่อของตัวแปรจะถูกผูกไว้กับที่อยู่ของบล็อกบางส่วน (ลำดับต่อเนื่องกัน) ของไบต์ในหน่วยความจำและการดำเนินการกับตัวแปรจะจัดการกับบล็อกนั้น การอ้างอิงเป็นเรื่องปกติมากขึ้นสำหรับตัวแปรที่ค่ามีขนาดใหญ่หรือไม่ทราบขนาดเมื่อคอมไพล์โค้ด ตัวแปรดังกล่าวอ้างอิงสถานที่ตั้งของค่าแทนการจัดเก็บค่าของตัวเองซึ่งมีการจัดสรรจากสระว่ายน้ำของหน่วยความจำที่เรียกว่ากอง

ตัวแปรผูกพันมีค่า อย่างไรก็ตามค่าเป็นสิ่งที่เป็นนามธรรมความคิด ในการนำไปใช้งานค่าจะแสดงโดยออบเจ็กต์ข้อมูลบางอย่างซึ่งเก็บไว้ที่ใดที่หนึ่งในหน่วยความจำคอมพิวเตอร์ โปรแกรมหรือสภาพแวดล้อมรันไทม์ต้องกันหน่วยความจำสำหรับอ็อบเจ็กต์ข้อมูลแต่ละตัวและเนื่องจากหน่วยความจำมีจำนวน จำกัด จึงต้องแน่ใจว่าหน่วยความจำนี้จะถูกนำมาใช้ซ้ำเมื่ออ็อบเจ็กต์ไม่จำเป็นต้องใช้แทนค่าของตัวแปรบางตัวอีกต่อไป

อ็อบเจ็กต์ที่จัดสรรจากฮีปต้องถูกเรียกคืนโดยเฉพาะอย่างยิ่งเมื่ออ็อบเจ็กต์ไม่จำเป็นอีกต่อไป ในภาษาที่เก็บรวบรวมขยะ (เช่นC # , Java , Python, Golang และLisp ) สภาพแวดล้อมรันไทม์จะเรียกคืนอ็อบเจ็กต์โดยอัตโนมัติเมื่อตัวแปรที่เหลืออยู่ไม่สามารถอ้างถึงได้อีกต่อไป ในภาษาที่ไม่ได้รวบรวมขยะเช่นCโปรแกรม (และโปรแกรมเมอร์) ต้องจัดสรรหน่วยความจำอย่างชัดเจนจากนั้นจึงปล่อยให้เป็นอิสระในภายหลังเพื่อเรียกคืนหน่วยความจำ ความล้มเหลวในการทำเช่นนั้นจะนำไปสู่การรั่วไหลของหน่วยความจำซึ่งฮีปจะหมดลงในขณะที่โปรแกรมทำงานเสี่ยงต่อความล้มเหลวในที่สุดจากการใช้หน่วยความจำที่มีอยู่จนหมด

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

หลักการตั้งชื่อ

ซึ่งแตกต่างจากคู่ของพวกเขาทางคณิตศาสตร์, การเขียนโปรแกรมตัวแปรและค่าคงที่โดยทั่วไปจะใช้ชื่อหลายตัวเช่นหรือCOST totalชื่ออักขระเดี่ยวมักใช้สำหรับตัวแปรเสริมเท่านั้น ตัวอย่างเช่นi, j, kสำหรับดัชนีอาร์เรย์ตัวแปร

รูปแบบการตั้งชื่อบางอย่างถูกบังคับใช้ที่ระดับภาษาโดยเป็นส่วนหนึ่งของไวยากรณ์ภาษาซึ่งเกี่ยวข้องกับรูปแบบของตัวระบุที่ถูกต้อง ในเกือบทุกภาษาชื่อตัวแปรไม่สามารถขึ้นต้นด้วยตัวเลข (0–9) และต้องไม่มีอักขระเว้นวรรค การอนุญาตให้ใช้เครื่องหมายวรรคตอนในชื่อตัวแปรจะแตกต่างกันไปในแต่ละภาษาหรือไม่ หลายภาษาอนุญาตเฉพาะขีดล่าง ("_") ในชื่อตัวแปรและห้ามใช้เครื่องหมายวรรคตอนอื่น ๆ ทั้งหมด ในภาษาโปรแกรมบางภาษาสัญลักษณ์ (สัญลักษณ์หรือเครื่องหมายวรรคตอน) จะติดอยู่กับตัวระบุตัวแปรเพื่อระบุประเภทข้อมูลหรือขอบเขตของตัวแปร

ความอ่อนไหวของชื่อตัวแปรยังแตกต่างกันไปตามภาษาและบางภาษาจำเป็นต้องใช้บางกรณีในการตั้งชื่อเอนทิตีบางอย่าง [หมายเหตุ 1]ภาษาสมัยใหม่ส่วนใหญ่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ภาษาเก่าบางภาษาไม่ได้ บางภาษาสงวนชื่อตัวแปรบางรูปแบบสำหรับการใช้งานภายในของตนเอง ในหลายภาษาชื่อที่ขึ้นต้นด้วยเครื่องหมายขีดล่าง ("__") มักจะอยู่ในหมวดหมู่นี้

อย่างไรก็ตามนอกเหนือจากข้อ จำกัด พื้นฐานที่กำหนดโดยภาษาแล้วการตั้งชื่อตัวแปรส่วนใหญ่เป็นเรื่องของรูปแบบ ในระดับรหัสเครื่องจะไม่มีการใช้ชื่อตัวแปรดังนั้นชื่อที่แน่นอนที่เลือกจึงไม่สำคัญกับคอมพิวเตอร์ ดังนั้นชื่อของตัวแปรจะระบุได้ส่วนที่เหลือเป็นเพียงเครื่องมือสำหรับโปรแกรมเมอร์ในการทำให้โปรแกรมเขียนและเข้าใจได้ง่ายขึ้น การใช้ชื่อตัวแปรที่เลือกไม่ดีอาจทำให้โค้ดตรวจสอบได้ยากกว่าชื่อที่ไม่สามารถอธิบายได้ดังนั้นชื่อที่ชัดเจนจึงมักได้รับการสนับสนุน [5] [6]

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

ประเภทตัวแปร (ตามอายุการใช้งาน)

ในแง่ของการจำแนกประเภทของตัวแปรเราสามารถจำแนกตัวแปรตามอายุการใช้งานของตัวแปรได้ ตัวแปรประเภทต่างๆ ได้แก่ สแต็กไดนามิกแบบสแต็กแบบชัดแจ้งแบบไดนามิกและฮีปไดนามิกโดยปริยาย ตัวแปรคงเป็นที่รู้จักกันเป็นตัวแปรทั่วโลกก็ถูกผูกไว้กับมือถือหน่วยความจำก่อนที่จะดำเนินการเริ่มต้นและยังคงอยู่กับเซลล์หน่วยความจำเดียวกันสิ้นสุด ตัวอย่างทั่วไปคือตัวแปรคงที่ใน C และ C ++ ตัวแปรสแต็ก - ไดนามิกเรียกว่าตัวแปรโลคัลซึ่งถูกผูกไว้เมื่อคำสั่งการประกาศถูกเรียกใช้งานและจะถูกยกเลิกการจัดสรรเมื่อโพรซีเดอร์ส่งคืน ตัวอย่างหลัก ได้แก่ ตัวแปรโลคัลในโปรแกรมย่อย C และวิธี Java ตัวแปร Explicit Heap-Dynamic คือเซลล์หน่วยความจำที่ไม่มีชื่อ (นามธรรม) ที่จัดสรรและยกเลิกการจัดสรรโดยคำสั่งรันไทม์ที่ระบุโดยโปรแกรมเมอร์อย่างชัดเจน ตัวอย่างหลัก ได้แก่ ออบเจ็กต์แบบไดนามิกใน C ++ (ผ่านทางใหม่และลบ) และอ็อบเจ็กต์ทั้งหมดใน Java ตัวแปร Heap-Dynamic โดยนัยถูกผูกไว้กับหน่วยเก็บฮีปเฉพาะเมื่อมีการกำหนดค่า การจัดสรรและการปล่อยเกิดขึ้นเมื่อกำหนดค่าใหม่ให้กับตัวแปร ด้วยเหตุนี้ตัวแปรแบบไดนามิกของฮีปโดยนัยจึงมีความยืดหยุ่นในระดับสูงสุด ตัวอย่างหลัก ได้แก่ ตัวแปรบางตัวใน JavaScript, PHP และตัวแปรทั้งหมดใน APL

ดูสิ่งนี้ด้วย

  • ตัวแปรควบคุม (การเขียนโปรแกรม)
  • ตัวแปรที่ไม่ใช่โลคัล
  • ตัวแปรชั่วคราว
  • การแก้ไขตัวแปร
  • สเกลาร์ (คณิตศาสตร์)

หมายเหตุ

  1. ^ ตัวอย่างเช่น Haskellกำหนดให้ชื่อประเภทขึ้นต้นด้วยอักษรตัวใหญ่

อ้างอิง

  1. ^ ผู้ เรียบเรียง: หลักการเทคนิคและเครื่องมือหน้า 26–28
  2. ^ Knuth โดนัลด์ (1997). ศิลปะของการเขียนโปรแกรมคอมพิวเตอร์1 (ฉบับที่ 3) Reading, Massachusetts: Addison-Wesley หน้า 3–4. ISBN 0-201-89683-4.
  3. ^ "การเขียนโปรแกรมด้วยตัวแปร" . Khan Academy . สืบค้นเมื่อ23 มีนาคม 2563 .
  4. ^ "Scratch for Budding Coders" . ฮาร์วาร์ด. สืบค้นเมื่อ23 มีนาคม 2563 .
  5. ^ How Not To Pick Variables , Retrieved July 11, 2012 [DEAD LINK]
  6. ^ Edsger Dijkstra , ไปลงนรกด้วย "ตัวบ่งชี้ที่มีความหมาย"!

Toplist

โพสต์ล่าสุด

แท็ก