Dokumentaro de Gambaso
Compilation & Installation
Components
Documents
Indekso de Lingvo
Language Overviews
Stream & Input/Output functions
LeguMin
Lexicon
Registro

Constant Expression

Since 3.17

Constant expressions are integer expressions that are evaluated at compile time, and that can be used in the following places: These expressions only support a subset of Gambas operators and pre-defined constants.

Here is what you can use inside a constant expression:

Arithmetic operators. +, -, *, /, \, DIV, %, MOD
Logical operators. AND, OR, XOR, NOT
Bitwise operators. Shl, Shr, Asl, Asr, Lsl, Lsr
Size of a native numerical or date datatype. SizeOf
Boolean constants TRUE, FALSE
Native datatype constants. gb.Boolean
gb.Byte
gb.Short
gb.Integer
gb.Long
gb.Single
gb.Float
gb.Date
Any private integer constant identifier previously declared.

In the context of constant integer expressions, The / operator acts like the integer division operator \.

Examples

Public Const Alpha As Integer = 1
Public Const Beta As Integer = (Alpha * 2) + 1
Public Const Delta As Byte = Beta + Alpha

Private Enum FirstFlag = 1 Shl 0, SecondFlag = 1 Shl 1, ThirdFlag = 1 Shl 2

Private SomeEmbeddedArray[Delta * SizeOf(gb.Short)] As String