# πŸ“š ДокумСнтация FoxLang v5.0 ## ОглавлСниС 1. [ΠžΡΠ½ΠΎΠ²Ρ‹ синтаксиса](#1-основы-синтаксиса) 2. [ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π’ΠΈΠΏΡ‹](#2-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅-ΠΈ-Ρ‚ΠΈΠΏΡ‹) 3. [ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ](#3-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) 4. [ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ Π›ΠΎΠ³ΠΈΠΊΠ°](#4-ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°-ΠΈ-Π»ΠΎΠ³ΠΈΠΊΠ°) 5. [Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции](#5-ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅-конструкции) 6. [ΠœΠ°ΡΡΠΈΠ²Ρ‹](#6-массивы) 7. [ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π˜ΠΌΠΏΠΎΡ€Ρ‚](#7-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ-ΠΈ-ΠΈΠΌΠΏΠΎΡ€Ρ‚) 8. [ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ](#8-встроСнныС-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) 9. [Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ синтаксис](#9-соврСмСнный-синтаксис) --- ## 1. ΠžΡΠ½ΠΎΠ²Ρ‹ синтаксиса FoxLang ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ синтаксис, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° C++ ΠΈ Java. * КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° **обязана** Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой `;`. * Π‘Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками `{ ... }`. * ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с `//` ΠΈ ΠΈΠ΄ΡƒΡ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки. * ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ с подчСркиваниями (`user_name`, `get_data`). ```cpp // Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ print("Hello"); // Команда string user_name = "john_doe"; // Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ синтаксис ``` --- ## 2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π’ΠΈΠΏΡ‹ Π―Π·Ρ‹ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡΡ‚ΡŒ основных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…: * `int` β€” Π¦Π΅Π»Ρ‹Π΅ числа. * `float` β€” Π”Ρ€ΠΎΠ±Π½Ρ‹Π΅ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. * `string` β€” ВСкст Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…. * `bool` β€” ЛогичСский Ρ‚ΠΈΠΏ (`true` ΠΈΠ»ΠΈ `false`). * `void` β€” Π’ΠΈΠΏ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. **ОбъявлСниС:** ```cpp int health = 100; float gravity = 9.8; string player_name = "Player1"; bool is_alive = true; ``` **ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅:** ```cpp health = 90; gravity = 1.62; player_name = "Player2"; is_alive = false; ``` --- ## 3. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FoxLang ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ### ОбъявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ```cpp // Ѐункция с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ int add(int a, int b) { return a + b; } // Ѐункция Π±Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния void greet(string name) { print("Hello, " + name + "!"); } // Ѐункция Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² string get_version() { return "FoxLang 5.0"; } ``` ### Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ```cpp int result = add(5, 3); greet("Alice"); string version = get_version(); print("Version: " + version); ``` ### РСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ```cpp int factorial(int n) { if (n <= 1) { return 1; } return n * factorial(n - 1); } int fact5 = factorial(5); // 120 ``` ### Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ```cpp int calculate_area(int width, int height) { int area = width * height; // Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная return area; } ``` > **Π’Π°ΠΆΠ½ΠΎ:** НСльзя ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΆΠ΅ сущСствуСт Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ области видимости. > ΠŸΡ€ΠΈ присваивании Π΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° `int`, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠ΅ (ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π° дробная Ρ‡Π°ΡΡ‚ΡŒ). --- ## 4. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ Π›ΠΎΠ³ΠΈΠΊΠ° ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ стандартныС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°. ### АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ | ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `+` | Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк | `5 + 5` ΠΈΠ»ΠΈ `"A" + "B"` | | `-` | Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ | `10 - 2` | | `*` | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ | `2 * 2` | | `/` | Π”Π΅Π»Π΅Π½ΠΈΠ΅ | `10 / 2` | | `%` | ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ дСлСния | `10 % 3` (Π²Π΅Ρ€Π½Π΅Ρ‚ 1) | | `++` | Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° 1) | `i++` (Π²Π΅Ρ€Π½Π΅Ρ‚ староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ) | ### ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ `1` (истина) ΠΈΠ»ΠΈ `0` (лоТь). | ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `==` | Π Π°Π²Π½ΠΎ | `x == 5` | | `!=` | НС Ρ€Π°Π²Π½ΠΎ | `x != 5` | | `<` | МСньшС | `x < 10` | | `>` | Π‘ΠΎΠ»ΡŒΡˆΠ΅ | `x > 0` | ### ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ FoxLang ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с boolean значСниями: | ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `&&` | ЛогичСскоС И (AND) | `(x > 0) && (x < 10)` | | `\|\|` | ЛогичСскоС Π˜Π›Π˜ (OR) | `(x == 0) \|\| (x == 1)` | | `!` | ЛогичСскоС НЕ (NOT) | `!(x == 0)` | ```cpp bool is_valid = (age >= 18) && (age <= 65); bool is_weekend = (day == "Saturday") || (day == "Sunday"); bool is_not_empty = !name.empty(); ``` --- ## 5. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции ### Условия (If / Else) ```cpp int x = 10; if (x == 10) { print("X is ten"); } else { print("X is not ten"); } ``` ### Π¦ΠΈΠΊΠ»Ρ‹ (While) ВыполняСт Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ° условиС истинно. ```cpp int i = 0; while (i < 5) { print("Loop iteration: " + i); i++; } ``` ### Π¦ΠΈΠΊΠ»Ρ‹ (For) ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ†ΠΈΠΊΠ» `for`, состоящий ΠΈΠ· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, условия ΠΈ шага. ```cpp for (int i = 0; i < 5; i++) { print("For loop: " + i); } ``` ### Switch/Case конструкции FoxLang ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ конструкции `switch/case` с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ `break` ΠΈ `default`: ```cpp int day = 3; switch (day) { case 1: print("ПонСдСльник"); break; case 2: print("Π’Ρ‚ΠΎΡ€Π½ΠΈΠΊ"); break; case 3: print("Π‘Ρ€Π΅Π΄Π°"); break; default: print("Π”Ρ€ΡƒΠ³ΠΎΠΉ дСнь"); break; } ``` ### Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ - `break` β€” ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ switch - `continue` β€” ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° ```cpp for (int i = 0; i < 10; i++) { if (i == 5) { continue; // ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 5 } if (i == 8) { break; // Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° } print(i); } ``` ### ΠžΠ±Π»Π°ΡΡ‚ΠΈ видимости (Scope) Π‘Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° `{ ... }` ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°, нСдоступны снаруТи. ```cpp int global = 10; { int local = 5; print(global); // 10 print(local); // 5 } // print(local); // Ошибка! ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ local Π½Π΅ сущСствуСт здСсь. ``` --- ## 6. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² FoxLang ΠΈΠΌΠ΅ΡŽΡ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ создании. 1. **Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅:** `array имя Ρ€Π°Π·ΠΌΠ΅Ρ€;` 2. **Π—Π°ΠΏΠΈΡΡŒ:** `set(имя, индСкс, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);` 3. **Π§Ρ‚Π΅Π½ΠΈΠ΅:** `get(имя, индСкс)` 4. **Π Π°Π·ΠΌΠ΅Ρ€:** `size(имя)` ```cpp array chest 3; // Массив Π½Π° 3 элСмСнта set(chest, 0, 55); // Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 55 Π² индСкс 0 print(get(chest, 0)); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ 55 ``` --- ## 7. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π˜ΠΌΠΏΠΎΡ€Ρ‚ FoxLang ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `include("ΠΏΡƒΡ‚ΡŒ/ΠΊ/Ρ„Π°ΠΉΠ»Ρƒ.fox");`. **ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:** * ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊΠΎΠ΄, находящийся Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ становятся доступными Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅. --- ## 8. ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ### Π’Π²ΠΎΠ΄/Π’Ρ‹Π²ΠΎΠ΄ | Ѐункция | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `print(expr...)` | Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ тСкст ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния Π² консоль. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². | `print("Hello", name);` | | `input()` | Π–Π΄Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° строки ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Ρ‘. | `string name = input();` | | `input(prompt)` | Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΆΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° строки. | `string name = input("Имя: ");` | ### ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ | Ѐункция | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `round(number)` | ΠžΠΊΡ€ΡƒΠ³Π»ΡΠ΅Ρ‚ Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ. | `int x = round(3.7); // 4` | | `random(min, max)` | Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ случайноС число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ min Π΄ΠΎ max Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. | `int dice = random(1, 6);` | ### Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ | Ѐункция | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `read_file(filename)` | Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π½Π΅ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ #). | `string config = read_file("config.txt");` | ### HTTP запросы | Ѐункция | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `httpget(url)` | ВыполняСт HTTP GET запрос ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ сСрвСра. | `string data = httpget("https://api.example.com");` | | `httppost(url, data)` | ВыполняСт HTTP POST запрос с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. | `string response = httppost(url, "{\"key\":\"value\"}");` | | `httppost(url, data, content_type)` | HTTP POST с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. | `httppost(url, data, "application/json");` | | `httpput(url, data)` | ВыполняСт HTTP PUT запрос с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. | `string response = httpput(url, data);` | | `httpput(url, data, content_type)` | HTTP PUT с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. | `httpput(url, data, "text/plain");` | | `httpdelete(url)` | ВыполняСт HTTP DELETE запрос. | `string response = httpdelete(url);` | ### Π Π°Π±ΠΎΡ‚Π° со строками ΠΈ JSON | Ѐункция | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `json_get(json_string, key)` | Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΈΠ· JSON строки. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ: "chat_id", "text", "update_id". | `string chat_id = json_get(response, "chat_id");` | | `str_contains(text, substring)` | ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, содСрТит Π»ΠΈ строка подстроку. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ `true` ΠΈΠ»ΠΈ `false`. | `bool found = str_contains("Hello World", "World");` | | `str_to_int(string)` | ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² Ρ†Π΅Π»ΠΎΠ΅ число. ΠŸΡ€ΠΈ ошибкС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0. | `int num = str_to_int("123");` | ### Π’Π²ΠΎΠ΄ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ) | Ѐункция | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `getch()` | Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ символ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π±Π΅Π· наТатия Enter. | `string key = getch();` | | `kbhit()` | ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, Π±Ρ‹Π»Π° Π»ΠΈ Π½Π°ΠΆΠ°Ρ‚Π° клавиша. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ `true` ΠΈΠ»ΠΈ `false`. | `bool pressed = kbhit();` | ### БистСмныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ | Ѐункция | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `wait(milliseconds)` | ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство миллисСкунд. | `wait(1000); // ΠŸΠ°ΡƒΠ·Π° 1 сСкунда` | | `fox()` | ΠŸΠ°ΡΡ…Π°Π»ΠΊΠ°: Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ языка "FoxLang". | `fox();` | --- ## 9. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ синтаксис FoxLang ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ соврСмСнныС соглашСния ΠΏΠΎ имСнованию ΠΈ синтаксису: ### Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ с подчСркиваниями Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ старых вСрсий, FoxLang Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ с подчСркиваниями: ```cpp // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ string user_name = "john_doe"; int max_health = 100; bool is_game_over = false; // Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ void calculate_damage(int base_damage, float multiplier) { // ... } int get_player_score() { return player_score; } ``` ### Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ FoxLang ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ объявлСниС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом `global`: ```cpp global int game_score = 0; global string player_name = "Unknown"; void update_score(int points) { game_score = game_score + points; } void main() { print("Score: " + game_score); update_score(100); print("New score: " + game_score); } ``` ### ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ соврСмСнного ΠΊΠΎΠ΄Π° ```cpp // БоврСмСнная функция с подчСркиваниями bool check_user_permissions(string user_role, int required_level) { if (user_role == "admin") { return true; } int user_level = get_user_level(user_role); return user_level >= required_level; } // Π Π°Π±ΠΎΡ‚Π° с массивами void sort_user_scores(array scores, int count) { for (int i = 0; i < count - 1; i++) { for (int j = 0; j < count - i - 1; j++) { if (get(scores, j) > get(scores, j + 1)) { int temp = get(scores, j); set(scores, j, get(scores, j + 1)); set(scores, j + 1, temp); } } } } ``` ---