Clojure - Tipi di dati
Clojure offre un'ampia varietà di built-in data types.
Tipi di dati incorporati
Di seguito è riportato un elenco di tipi di dati definiti in Clojure.
Integers - Di seguito sono riportate le rappresentazioni di numeri interi disponibili in Clojure.
Decimal Integers (Short, Long and Int)- Questi sono usati per rappresentare numeri interi. Ad esempio, 1234.
Octal Numbers- Questi sono usati per rappresentare i numeri nella rappresentazione ottale. Ad esempio, 012.
Hexadecimal Numbers- Questi sono usati per rappresentare i numeri nella rappresentazione. Ad esempio, 0xff.
Radix Numbers- Questi sono usati per rappresentare i numeri nella rappresentazione della radice. Ad esempio, 2r1111 dove la radice è un numero intero compreso tra 2 e 36, inclusi.
Floating point
L'impostazione predefinita viene utilizzata per rappresentare i numeri in virgola mobile a 32 bit. Ad esempio, 12.34.
L'altra rappresentazione è la notazione scientifica. Ad esempio, 1.35e-12.
char- Questo definisce un singolo carattere letterale. I caratteri sono definiti con il simbolo del backlash. Ad esempio, / e.
Boolean - Questo rappresenta un valore booleano, che può essere vero o falso.
String- Questi sono letterali di testo che sono rappresentati sotto forma di catena di caratteri. Ad esempio, "Hello World".
Nil - Viene utilizzato per rappresentare un valore NULL in Clojure.
Atom- Gli atomi forniscono un modo per gestire lo stato condiviso, sincrono e indipendente. Sono un tipo di riferimento come refs e vars.
Valori vincolati
Poiché tutti i tipi di dati in Clojure vengono ereditati da Java, i valori limitati sono gli stessi del linguaggio di programmazione Java. La tabella seguente mostra i valori massimi consentiti per i valori letterali numerici e decimali.
letterali | Gamme |
---|---|
Corto | Da -32.768 a 32.767 |
int | -2.147.483.648 a 2.147.483.647 |
lungo | -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 |
galleggiante | Da 1,40129846432481707e-45 a 3,40282346638528860e + 38 |
Doppio | 4.94065645841246544e-324d a 1.79769313486231570e + 308d |
Tipi numerici di classe
Oltre ai tipi primitivi, sono consentiti i seguenti tipi di oggetto (a volte indicati come tipi wrapper).
Nome |
---|
java.lang.Byte |
java.lang.Short |
java.lang.Integer |
java.lang.Long |
java.lang.Float |
java.lang.Double |
Esempio
Il seguente programma mostra un codice clojure consolidato per dimostrare i tipi di dati in Clojure.
(ns clojure.examples.hello
(:gen-class))
;; This program displays Hello World
(defn Example []
;; The below code declares a integer variable
(def x 1)
;; The below code declares a float variable
(def y 1.25)
;; The below code declares a string variable
(def str1 "Hello")
(println x)
(println y)
(println str1))
(Example)
Produzione
Il programma precedente produce il seguente output.
1
1.25
Hello