Clojure - Atom

Atomsadalah tipe data di Clojure yang menyediakan cara untuk mengelola status bersama, sinkron, dan independen. Atom sama seperti jenis referensi apa pun dalam bahasa pemrograman lainnya. Penggunaan utama atom adalah untuk menyimpan struktur data Clojure yang tidak dapat diubah. Nilai yang dipegang oleh sebuah atom diubah denganswap! method.

Secara internal, tukar! membaca nilai saat ini, menerapkan fungsinya, dan mencoba membandingkan-dan-mengaturnya. Karena thread lain mungkin telah mengubah nilai dalam waktu sela, ia mungkin harus mencoba lagi, dan melakukannya dalam putaran putaran. Efek bersihnya adalah bahwa nilai tersebut akan selalu menjadi hasil penerapan fungsi yang disediakan ke nilai saat ini, secara atomis.

Contoh

Atom dibuat dengan bantuan metode atom. Contoh yang sama ditunjukkan pada program berikut.

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def myatom (atom 1))
   (println @myatom))
(example)

Keluaran

Program di atas menghasilkan hasil sebagai berikut.

1

Nilai atom diakses dengan menggunakan simbol @. Clojure memiliki beberapa operasi yang dapat dilakukan pada atom. Berikut adalah operasinya.

Sr.No. Operasi & Deskripsi
1 setel ulang!

Menetapkan nilai atom ke nilai baru tanpa memperhatikan nilai saat ini.

2 bandingkan-dan-set!

Secara atomis menetapkan nilai atom ke nilai baru jika dan hanya jika nilai atom saat ini identik dengan nilai lama yang dipegang oleh atom. Mengembalikan nilai benar jika set terjadi, jika tidak maka mengembalikan salah.

3 menukar!

Secara atomis menukar nilai atom dengan yang baru berdasarkan fungsi tertentu.