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