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.
À, bạn cần biết về Quy tắc Phạm vi - Hiểu ý nghĩa “phạm vi” với {... }
Biến cục bộ
Quan sát đầu ra được tạo từ mã mẫu. Cần phải rõ ràng về sự khác biệt chính. Đây đều là các biến “cục bộ”, trong phạm vi {...} của nó.
int main( ) {
int X = 10, Y = 15;
{
int X = 20;
{
int X = 30, Y = 35;
brain.Screen.printAt(4,30, "thứ 3: %d, %d ", X, Y);
}
brain.Screen.printAt(4, 60, "thứ 2: %d, %d", X, Y);
}
brain.Screen.printAt(4, 90, "1st one: %d, %d", X, Y);
trả về 0;
}
Đầu ra:
Cái thứ 3: 30, 35 Cái thứ 2: 20, 15 Cái thứ 1: 10, 15
Ví dụ trên được sử dụng để làm rõ nhanh chóng và dễ dàng. Không sử dụng các biến dọc giống hệt nhau trong phạm vi lồng nhau.
Còn việc đặt các biến bên ngoài khối “main()” thì sao?
Biến toàn cục
Việc đặt các biến bên ngoài khối main( ) , nhưng không nằm trong bất kỳ hàm nào khác, sẽ làm cho tất cả các hàm trong dự án có thể sử dụng các biến trên toàn cầu. Chúng được gọi là các biến toàn cục.
int gValue = 90000; // đây là toàn cục cho tất cả các phạm vi khác
int main() {
Brain.Screen.setFont(fontType::mono30);
int X = 10;
{
int X = 20, gValue = 8000;
{
int X = 30, gValue= 700;
Brain.Screen.printAt(4, 30, " Cái thứ 3: %d ", gValue + X);
}
Brain.Screen.printAt(4, 60, " Cái thứ 2: %d ", gValue + X);
}
Brain.Screen.printAt(4, 90, " Số 1: %d ", gValue + X);
}
Đầu ra:
Cái thứ 3: 730 Cái thứ 2: 8020 Cái thứ nhất: 90010
Cách tốt nhất là không sử dụng cùng một tên định danh cho cả biến toàn cục và biến cục bộ.
Chú ý: Xin lưu ý rằng tôi đã đề cập: “dự án” chứ không phải “tập tin”. Một dự án có thể bao gồm nhiều hơn một tập tin. Tuy nhiên, trong một dự án, bạn không thể có nhiều hơn một hàm main( ). Điều này nằm ngoài phạm vi của bài viết này. Có một số quy tắc bổ sung như sử dụng “extern” liên quan đến các biến toàn cục. Điều này sẽ được thảo luận thêm trong phần khác liên quan đến nhiều tệp trong một dự án trong Thư viện VEX.
"không gian tên vex" là gì?
Không gian tên không nhất thiết phải thảo luận về các biến “cục bộ” và “toàn cầu”, vì Không gian tên không phải là một biến. Tuy nhiên, “namespace vex” có chứa phạm vi riêng của nó. Vì nó là một phần của cơ sở mã mẫu mà bạn PHẢI đưa vào tất cả chương trình V5 của mình nên quy tắc phạm vi cho không gian tên sẽ được đề cập ngắn gọn trong bài viết này.
Mỗi không gian tên giống như một không gian nơi bạn có thể tạo một tập hợp các biến, hàm liên quan đến “không gian” riêng lẻ đó. Bạn có quyền truy cập vào tất cả các biến, hàm, lớp, v.v. có sẵn được xác định bên trong “không gian” này.
Bạn có thể tra cứu không gian tên trực tuyến tại https://api.vexcode.cloud/v5/html/. Để tra cứu nhanh, bạn cũng có thể nhấp chuột phải vào “vex”, sau đó nhấp vào “Go to Definition”. Bạn sẽ tìm thấy rất nhiều thông tin về những gì có sẵn trong không gian tên “vex”.
Bạn có thể truy cập bất kỳ trong số chúng bằng cách thực hiện: vex::
ví dụ: Tham khảo lại mã mẫu:
sử dụng không gian tên vex; khó chịu::não Não;
Ngoài ra, bất kỳ tên nào bao gồm biến, hàm, v.v. được khai báo bên trong không gian “vex” này sẽ không xung đột với một “khoảng trắng” khác trong chương trình.
Ví dụ: bạn có thể quyết định tạo "myOwnNamespace" và đặt tên cho biến là "Brain". Bạn không nên làm những việc như vậy nhưng chương trình sẽ cho phép điều đó. Đó là vì điều này được xác định trong "myOwnNamespace."