PureBasic

Другие команды

Краткое описание функций:
Goto End Swap

Синтаксис

Goto <label>

Описание


Эта команда используется для перевода программы прямо к позиции метки <label>. Будьте осторожны при использовании этой функции, так как некорректное использование может вызвать сбой программы...

Примечание: Чтобы безопасно выйти из цикла, вы всегда должны использовать Break вместо Goto и никогда не использовать его внутри блока Select / EndSelect (если у вас нет возможности правильно управлять стеком).


Синтаксис

End [ExitCode]

Описание


Корректно заканчивает выполнение программы. Можно задать необязательный параметр 'ExitCode', если программа должна возвратить код ошибки (широко используется в консольных программах).

'ExitCode' может в дальнейшем использоваться например с командой ProgramExitCode().


Синтаксис

Swap <expression>, <expression>

Описание


Меняет местами значения двух выражений <expression> оптимизированным способом. Каждое выражение <expression> может быть переменной, элементом Массива, элементом Связного списка или элементом Хеш-карты в любой комбинации, но при этом оба <expression> должны быть одного и того же стандартного типа поддерживаемого PureBasic, или Структурного типа определяемого пользователем.

Пример: Обмен строк

Hello$ = "Hello"
World$ = "World"

Swap Hello$, World$

Debug Hello$+" "+World$

Пример: Обмен значений элементов многомерных массивов

Dim Array1(5, 5)
Dim Array2(5, 5)
Array1(2, 2) = 10  ; Устанавливаем начальное содержимое
Array2(3, 3) = 20

Debug Array1(2, 2) ; Отобразит 10
Debug Array2(3, 3) ; Отобразит 20

Swap Array1(2, 2) , Array2(3, 3) ; Поменяем местами значения 2-х элементов массива

Debug "Содержимое массива после обмена:"
Debug Array1(2, 2) ; Отобразит 20
Debug Array2(3, 3) ; Отобразит 10

Пример: Использование Swap для передачи значения по разным объектам

; Инициализируем переменные, массив, Связный список и Хеш-карту. Всё одного типа, который задан по умолчанию.
Define a, b
Dim Array1(4, 4)
NewList List1()
NewMap Map1()
; Присваиваем им значения
a = 1
b = 2
Array1(1, 1) = 3
AddElement(List1()) ; добавим элемент в Связный список и он становится текущим.
List1()=4            ; присваиваем значение 4 текущему элементу Связного списка
AddMapElement(Map1(), "ключ") ; добавим элемент в Хеш-карту и он становится текущим.
Map1()=5                      ; присваиваем значение 5 текущему элементу Хеш-карты

Debug a            ; 1
Debug b                ; 2
Debug Array1(1, 1)    ; 3
Debug List1()        ; 4
Debug Map1()        ; 5

Swap b,a                    ; меняем значения между 'b' и 'a'
Swap Array1(1, 1), b        ; меняем значения между элементом Массива и 'b'
Swap List1() , Array1(1, 1)    ; меняем значения между текущим элементом Связного списка и элементом Массива
Swap Map1(), List1() ; меняем значения между текущим элементом Хеш-карты и текущим элементом Связного списка
Debug Map1() ; Отобразит 1, так как значение передано по цепочке из переменной 'a' в текущий элемент Хеш-карты Map1()