PureBasic

Руководство - Переменные и Обработка переменных

Объявление переменной A с типом по умолчанию (.i), но обратите внимание на то, что Вы не сможете так объявить переменную, если использовали директиву EnableExplicit. Если так объявить А в основном коде, она будет не доступна в процедуре, и наоборот, если переменную А объявить в рамках процедуры, она будет локальной, то есть доступна только в этой процедуре, но не в основном коде.

A = 0


Объявление переменной B с типом long (целое число - 4 байта), и переменной C - с типом Float (число с плавающей точкой - 4 байта), они будут инициализированы, и обнулены.

Define B.l, C.f


Объявление D и E с типом long. Они так же будут инициализированы, но с заданными значениями (10 и 20). Обратите внимание, что в этом варианте для объявления был использован альтернативный синтаксис Define.

Define.l D = 10, E = 20


Здесь F - строковая переменная (string) .

Define.s F


Здесь G$ - тоже строковая переменная, однако, если Вы объявляете строку таким путём, то в этом коде Вы должны будете всегда использовать нотацию $, чтобы обратится именно к этой переменной. Символ $ становится как бы частью имени переменной.

G$ = "Hello, "

Так работать не будет (G становится новой целочисленной переменной, и компилятор выдаст ошибку):

G = "Goodbye, World!"


Здесь H это массив строкового типа с 20-ю элементами, индексация массива начинается с нуля:

Dim H.s(19)

Теперь массив H содержит 25 строковых элементов. При увеличении размера массива, данные содержащиеся в нём сохраняются:

ReDim H.s(24)


Переменная J объявляется как Глобальная, это значит в Глобальной области видимости и будет доступна не только в основном коде, но и в процедурах. Но, чтобы свести к минимуму вероятность случайных изменений значений переменных, иногда лучше использовать ключевое слово Shared, которое позволяет находясь в процедуре получать доступ к переменной основного кода.

Global.i J


Объявленный K - будет новым, пустым связным списком, строкового (string) типа, в основной области видимости (доступный для основного кода).

NewList K.s()


Объявленная M будет новой, пустой хеш-картой, строкового (string) типа, в основной области видимости.

NewMap M.s()


Обратите внимание на то, что Вы не можете использовать альтернативный синтаксис Define при использовании команд NewList или NewMap . Иначе компилятора выдаст ошибку.

В рамках процедуры:

Procedure TestVariables()

    ; N и P будут локальными.
    Define.l N
    Protected.l P

    ; Q будет статической локальной переменной.
    Static.l Q

    ;  Переменная F и список K с типом (string) из основного кода будут доступны в рамках этой процедуры.
    Shared F, K()

    ; Переменная глобальной области видимости J будет доступна здесь неявно.

EndProcedure


Использование различных операторов с переменными:

; Прибавит к переменной А число 2.
A + 2

; Применит поразрядное ИЛИ к числу 21 (A станет 23)
A | 21

; Применит поразрядное И к числу 1 (A станет 1)
A & 1

; Применит Арифметический сдвиг влево (A станет 2, это 10 в двоичном формате).
A << 1


Конкатенация строк:

G$ + "World!"


Добавит элемент к списку K:

AddElement(K())
K() = "List element one"


Добавит элемент к хеш-карте M:

M("one") = "Map element one"


Навигация Руководства

< Первые шаги - Обзор - Константы >