Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

int

Un tipo integrato per gli interi.

Descrizione

Tipo intero a 64 bit con segno. Ciò significa che può assumere valori da -2^63 a 2^63 - 1, ovvero da -9223372036854775808 a 9223372036854775807. Quando supera questi limiti, si avvolgerà.

Gli int possono essere automaticamente convertiti in float quando necessario, ad esempio quando sono passati come argomenti nelle funzioni. Il float sarà il più vicino possibile all'intero originale.

Allo stesso modo, i float possono essere automaticamente convertiti in int. Ciò troncherà il float, scartando tutto ciò che segue la virgola mobile.

Nota: In un contesto booleano, un int sarà valutato come false se è uguale a 0, e come true altrimenti.

var x: int = 1 # x è 1
x = 4.2 # x è 4, perché 4.2 viene troncato
var max_int = 9223372036854775807 # Il valore più grande che un int può memorizzare
max_int += 1 # max_int è ora -9223372036854775808, perché è stato avvolto

Puoi usare il letterale 0b per la rappresentazione binaria, il letterale 0x per la rappresentazione esadecimale e il simbolo _ per separare i numeri lunghi e migliorare la leggibilità.

var x = 0b1001 # x è 9
var y = 0xF5 # y è 245
var z = 10_000_000 # z è 10000000

Costruttori

int

int()

int

int(from: int)

int

int(from: String)

int

int(from: bool)

int

int(from: float)

Operatori

bool

operator !=(right: float)

bool

operator !=(right: int)

int

operator %(right: int)

int

operator &(right: int)

Color

operator *(right: Color)

Quaternion

operator *(right: Quaternion)

Vector2

operator *(right: Vector2)

Vector2i

operator *(right: Vector2i)

Vector3

operator *(right: Vector3)

Vector3i

operator *(right: Vector3i)

Vector4

operator *(right: Vector4)

Vector4i

operator *(right: Vector4i)

float

operator *(right: float)

int

operator *(right: int)

float

operator **(right: float)

int

operator **(right: int)

float

operator +(right: float)

int

operator +(right: int)

float

operator -(right: float)

int

operator -(right: int)

float

operator /(right: float)

int

operator /(right: int)

bool

operator <(right: float)

bool

operator <(right: int)

int

operator <<(right: int)

bool

operator <=(right: float)

bool

operator <=(right: int)

bool

operator ==(right: float)

bool

operator ==(right: int)

bool

operator >(right: float)

bool

operator >(right: int)

bool

operator >=(right: float)

bool

operator >=(right: int)

int

operator >>(right: int)

int

operator ^(right: int)

int

operator unary+()

int

operator unary-()

int

operator |(right: int)

int

operator ~()


Descrizioni dei costruttori

int int() 🔗

Costruisce un int impostato su 0.


int int(from: int)

Costruisce un int come copia del int specificato.


int int(from: String)

Costruisce un nuovo int da una String, seguendo le stesse regole del metodo String.to_int().


int int(from: bool)

Costruisce un nuovo int da un bool. true è convertito a 1 e false è convertito a 0.


int int(from: float)

Costruisce un nuovo int da un float. Questo troncherà il float, scartando ogni cifra che segue la virgola mobile.


Descrizioni degli operatori

bool operator !=(right: float) 🔗

Restituisce true se l'int non è equivalente al float.


bool operator !=(right: int) 🔗

Restituisce true se gli int non sono uguali.


int operator %(right: int) 🔗

Restituisce il resto dopo aver diviso due int. Utilizza la divisione troncata, che restituisce un numero negativo se il dividendo è negativo. Se ciò non è desiderato, considera l'utilizzo di @GlobalScope.posmod().

print(6 % 2) # Stampa 0
print(11 % 4) # Stampa 3
print(-5 % 3) # Stampa -2

int operator &(right: int) 🔗

Esegue l'operazione bitwise AND.

print(0b1100 & 0b1010) # Stampa 8 (binario 1000)

Questo è utile per recuperare i flag binari da una variabile.

var flags = 0b101
# Controlla se il primo o il secondo bit sono abilitati.
if flags & 0b011:
do_stuff() # Questa riga sarà eseguita.

Color operator *(right: Color) 🔗

Moltiplica ogni componente del Color per l'int.


Quaternion operator *(right: Quaternion) 🔗

Moltiplica ogni componente del Quaternion per l'int. Questa operazione non ha senso di per sé, ma può essere utilizzata come parte di un'espressione più ampia.


Vector2 operator *(right: Vector2) 🔗

Moltiplica ogni componente del Vector2 per l'int.

print(2 * Vector2(1, 4)) # Stampa (2, 8)

Vector2i operator *(right: Vector2i) 🔗

Moltiplica ogni componente del Vector2i per l'int.


Vector3 operator *(right: Vector3) 🔗

Moltiplica ogni componente del Vector3 per l'int.


Vector3i operator *(right: Vector3i) 🔗

Moltiplica ogni componente del Vector3i per l'int.


Vector4 operator *(right: Vector4) 🔗

Moltiplica ogni componente del Vector4 per l'int.


Vector4i operator *(right: Vector4i) 🔗

Moltiplica ogni componente del Vector4i per l'int.


float operator *(right: float) 🔗

Moltiplica il float per l'int. Il risultato è un float.


int operator *(right: int) 🔗

Moltiplica i due int.


float operator **(right: float) 🔗

Eleva un int alla potenza di un float. Il risultato è un float.

print(2 ** 0.5) # Stampa 1.4142135623731

int operator **(right: int) 🔗

Eleva l'int sinistro alla potenza dell'int destro.

stampa(3 ** 4) # Stampe 81

float operator +(right: float) 🔗

Aggiunge l'int e il float. Il risultato è un float.


int operator +(right: int) 🔗

Aggiunge i due int.


float operator -(right: float) 🔗

Sottrae il float dall'int. Il risultato è un float.


int operator -(right: int) 🔗

Sottrae i due int.


float operator /(right: float) 🔗

Divide l'int per il float. Il risultato è un float.

print(10 / 3.0) # Stampa 3.33333333333333

int operator /(right: int) 🔗

Divide i due int. Il risultato è un int. Questo troncherà il float, scartando ogni cifra dopo il punto decimale.

Stampa(6 / 2) # Stampa 3
stampa(5 / 3) # Stampa 1

bool operator <(right: float) 🔗

Restituisce true se l'int è minore del float.


bool operator <(right: int) 🔗

Restituisce true se l'int sinistro è minore dell'int destro.


int operator <<(right: int) 🔗

Esegue l'operazione di spostamento bit a sinistra. In pratica è uguale alla moltiplicazione per una potenza di 2.

print(0b1010 << 1) # Stampa 20 (binario 10100)
print(0b1010 << 3) # Stampa 80 (binario 1010000)

bool operator <=(right: float) 🔗

Restituisce true se l'int è minore o uguale al float.


bool operator <=(right: int) 🔗

Restituisce true se l'int sinistro è minore o uguale all'int destro.


bool operator ==(right: float) 🔗

Restituisce true se l'int è uguale al float.


bool operator ==(right: int) 🔗

Restituisce true se i due int sono uguali.


bool operator >(right: float) 🔗

Restituisce true se l'int è maggiore del float.


bool operator >(right: int) 🔗

Restituisce true se l'int sinistro è maggiore dell'int destro.


bool operator >=(right: float) 🔗

Restituisce true se il int è maggiore o uguale al float.


bool operator >=(right: int) 🔗

Restituisce true se l'int sinistro è maggiore o uguale all'int destro.


int operator >>(right: int) 🔗

Esegue l'operazione di spostamento bit a destra. In pratica è uguale alla divisione per una potenza di 2.

print(0b1010 >> 1) # Stampa 5 (binario 101)
print(0b1010 >> 2) # Stampa 2 (binario 10)

int operator ^(right: int) 🔗

Esegue l'operazione bitwise XOR.

print(0b1100 ^ 0b1010) # Stampa 6 (110 in binario)

int operator unary+() 🔗

Restituisce lo stesso valore come se + non ci fosse. Il + unario non fa nulla, ma a volte può rendere il tuo codice più leggibile.


int operator unary-() 🔗

Restituisce il valore negativo di int. Se positivo, rende il numero negativo. Se negativo, rende il numero positivo. Se zero, non fa nulla.


int operator |(right: int) 🔗

Esegue l'operazione bitwise OR.

print(0b1100 | 0b1010) # Stampa 14 (binario 1110)

Questo è utile per memorizzare i flag binari in una variabile.

var flags = 0
flags |= 0b101 # Attiva il primo e il terzo bit.

int operator ~() 🔗

Esegue l'operazione bitwise NOT sull'int. A causa del Completamento a due, è effettivamente uguale a -(int + 1).

print(~4) # Stampa -5
print(~(-7)) # Stampa 6