The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
คุณต้องรู้เกี่ยวกับขอบเขตกฎ - ทำความเข้าใจแนวคิดของ "ขอบเขต" ด้วย {... }
ตัวแปรท้องถิ่น
สังเกตผลลัพธ์ที่สร้างจากโค้ดตัวอย่าง ควรมีความชัดเจนเกี่ยวกับความแตกต่างที่สำคัญ สิ่งเหล่านี้ล้วนเป็นตัวแปร "ท้องถิ่น" ภายในขอบเขต {...}
int หลัก ( ) {
int X = 10, Y = 15;
{
int X = 20;
{
int X = 30, Y = 35;
brain.Screen.printAt(4,30, "อันที่ 3: %d, %d ", X, Y);
}
brain.Screen.printAt(4, 60, "อันที่ 2: %d, %d", X, Y);
}
brain.Screen.printAt(4, 90, "อันที่ 1: %d, %d", X, Y);
กลับ 0;
}
เอาท์พุท:
อันที่ 3: 30, 35 อันที่สอง: 20, 15 อันที่ 1: 10, 15
ตัวอย่างข้างต้นใช้เพื่อการชี้แจงที่ง่ายและรวดเร็ว อย่าใช้ตัวแปรแนวตั้งที่เหมือนกันภายในขอบเขตที่ซ้อนกัน
แล้วการวางตัวแปรไว้นอกบล็อก “main( )” ล่ะ?
ตัวแปรร่วม
การวางตัวแปรไว้นอกบล็อก main( ) แต่ไม่อยู่ในฟังก์ชันอื่นๆ จะทำให้ตัวแปรสามารถใช้งานได้ทั่วโลกโดยทุกฟังก์ชันในโปรเจ็กต์ สิ่งเหล่านี้เรียกว่าตัวแปรระดับโลก
int gValue = 90000; // นี่เป็นส่วนกลางสำหรับขอบเขตอื่น ๆ ทั้งหมด
int main() {
Brain.Screen.setFont(fontType::mono30);
อินท์ X = 10;
{
int X = 20, gValue = 8000;
{
int X = 30, gValue= 700;
Brain.Screen.printAt(4, 30, " อันที่ 3: %d ", gValue + X);
}
Brain.Screen.printAt(4, 60, " อันที่สอง: %d ", gValue + X);
}
Brain.Screen.printAt(4, 90, " อันที่ 1: %d ", gValue + X);
}
เอาท์พุท:
อันที่ 3: 730 อันที่ 2: 8020 อันที่ 1: 90010
แนวทางปฏิบัติที่ดีที่สุดคืออย่าใช้ชื่อตัวระบุเดียวกันสำหรับทั้งตัวแปรส่วนกลางและตัวแปรท้องถิ่น
ข้อควรสนใจ: โปรดทราบว่าฉันพูดถึง: "โครงการ" ไม่ใช่ "ไฟล์" โครงการสามารถประกอบด้วยมากกว่าหนึ่งไฟล์ อย่างไรก็ตาม ภายในโปรเจ็กต์เดียว คุณไม่สามารถมีฟังก์ชัน main( ) ได้มากกว่าหนึ่งฟังก์ชัน สิ่งนี้อยู่นอกขอบเขตของบทความนี้ มีกฎเพิ่มเติมบางอย่าง เช่น การใช้ “extern” เกี่ยวกับตัวแปรโกลบอล จะมีการพูดคุยเพิ่มเติมในส่วนอื่นเกี่ยวกับไฟล์หลายไฟล์ภายในโปรเจ็กต์เดียวภายใน VEX Library
“เนมสเปซรบกวน” คืออะไร?
เนมสเปซไม่จำเป็นต้องอยู่ในการสนทนาระหว่างตัวแปร "ท้องถิ่น" กับ "ทั่วโลก" เนื่องจากเนมสเปซไม่ใช่ตัวแปร อย่างไรก็ตาม “เนมสเปซ vex” ไม่มี มีขอบเขตของตัวเอง เนื่องจากเป็นส่วนหนึ่งของโค้ดฐานเทมเพลตที่คุณต้องรวมไว้ในโปรแกรม V5 ทั้งหมดของคุณ กฎขอบเขตสำหรับเนมสเปซจึงควรกล่าวถึงโดยย่อในบทความนี้
แต่ละเนมสเปซเปรียบเสมือนช่องว่างที่คุณสามารถสร้างชุดตัวแปร ซึ่งเป็นฟังก์ชันที่เกี่ยวข้องกับ "ช่องว่าง" แต่ละรายการนั้น คุณสามารถเข้าถึงตัวแปร ฟังก์ชัน คลาส ฯลฯ ที่มีอยู่ทั้งหมดที่กำหนดไว้ภายใน “ช่องว่าง” นี้
คุณสามารถค้นหาเนมสเปซออนไลน์ได้ที่ https://api.vexcode.cloud/v5/html/ หากต้องการค้นหาอย่างรวดเร็ว คุณสามารถคลิกขวาที่ “vex” จากนั้นคลิกที่ “Go to Definition” คุณจะพบข้อมูลมากมายเกี่ยวกับสิ่งที่มีอยู่ในเนมสเปซ “vex”
คุณสามารถเข้าถึงสิ่งเหล่านี้ได้โดยทำ: vex::
เช่น อ้างอิงกลับไปที่โค้ดเทมเพลต:
ใช้เนมสเปซรบกวน; vex::สมอง สมอง;
นอกจากนี้ ชื่อใดๆ รวมถึงตัวแปร ฟังก์ชัน ฯลฯ ที่ประกาศไว้ภายในช่องว่าง "vex" นี้จะไม่ขัดแย้งกับ "ช่องว่าง" อื่นในโปรแกรม
ตัวอย่างเช่น คุณสามารถตัดสินใจสร้าง "myOwnNamespace" และตั้งชื่อตัวแปรว่า "Brain" ไม่แนะนำให้คุณทำแบบนั้น แต่โปรแกรมจะอนุญาต นั่นเป็นเพราะว่าสิ่งนี้ถูกกำหนดไว้ภายใน "myOwnNamespace"