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.
Checking the stable version of the documentation...
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
int x = 1; // x è 1
x = (int)4.2; // x è 4, perché 4.2 viene troncato
// Di seguito utilizziamo long, perché l'int di GDScript è a 64 bit mentre l'int di C# è a 32 bit.
long maxLong = 9223372036854775807; // Il valore più grande che un long può memorizzare
maxLong++; // maxLong è ora -9223372036854775808, perché è stato avvolto.
// In alternativa con il tipo int a 32 bit di C#, che ha un valore massimo inferiore.
int maxInt = 2147483647; // Il valore più grande che un int può memorizzare
maxInt++; // maxInt è ora -2147483648, 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
int x = 0b1001; // x è 9
int y = 0xF5; // y è 245
int z = 10_000_000; // z è 10000000
Costruttori
int() |
|
Operatori
operator !=(right: float) |
|
operator !=(right: int) |
|
operator %(right: int) |
|
operator &(right: int) |
|
operator *(right: Color) |
|
operator *(right: Quaternion) |
|
operator *(right: Vector2) |
|
operator *(right: Vector2i) |
|
operator *(right: Vector3) |
|
operator *(right: Vector3i) |
|
operator *(right: Vector4) |
|
operator *(right: Vector4i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator **(right: float) |
|
operator **(right: int) |
|
operator +(right: float) |
|
operator +(right: int) |
|
operator -(right: float) |
|
operator -(right: int) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: float) |
|
operator <(right: int) |
|
operator <<(right: int) |
|
operator <=(right: float) |
|
operator <=(right: int) |
|
operator ==(right: float) |
|
operator ==(right: int) |
|
operator >(right: float) |
|
operator >(right: int) |
|
operator >=(right: float) |
|
operator >=(right: int) |
|
operator >>(right: int) |
|
operator ^(right: int) |
|
operator |(right: int) |
|
Descrizioni dei costruttori
Costruisce un int impostato su 0.
Costruisce un int come copia del int specificato.
Costruisce un nuovo int da una String, seguendo le stesse regole del metodo String.to_int().
Costruisce un nuovo int da un bool. true è convertito a 1 e false è convertito a 0.
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.
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
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.
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
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.
Aggiunge i due int.
float operator -(right: float) 🔗
Sottrae il float dall'int. Il risultato è un float.
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
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.
Restituisce true se l'int sinistro è minore dell'int destro.
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.
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.
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)
Esegue l'operazione bitwise XOR.
print(0b1100 ^ 0b1010) # Stampa 6 (110 in binario)
Restituisce lo stesso valore come se + non ci fosse. Il + unario non fa nulla, ma a volte può rendere il tuo codice più leggibile.
Restituisce il valore negativo di int. Se positivo, rende il numero negativo. Se negativo, rende il numero positivo. Se zero, non fa nulla.
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.
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