Struktur Data Tidak Boleh Ubah: Rekod dan Tuple dalam ECMA 4

WBOY
Lepaskan: 2024-08-14 10:36:32
asal
548 orang telah melayarinya

Immutable Data Structures: Records and Tuples in ECMA 4

Struktur Data Tidak Boleh Ubah: Ciri Baharu dalam ECMAScript 2024

ECMAScript 2024 memperkenalkan beberapa kemas kini yang menarik, tetapi satu ciri yang menonjol kepada saya ialah pengenalan Struktur Data Tidak Boleh Ubah. Struktur baharu ini—Records dan Tuples—adalah penukar permainan untuk mengurus data dalam JavaScript. Mereka menawarkan cara yang memuaskan untuk memastikan data kami kukuh, selamat dan konsisten, yang merupakan perkara yang paling penting apabila kami mahukan aplikasi yang boleh dipercayai yang boleh kami selenggara dengan mudah. Inilah sebabnya mengapa struktur data tidak berubah sangat menarik, dan cara anda boleh menggunakannya dengan paling berkesan.

Apakah Rekod dan Tuple?

Rekod dan Tuples ialah struktur data baharu yang tidak boleh diubah mengikut reka bentuk. Ini bermakna sebaik sahaja anda mencipta Rekod atau Tuple, kandungannya tidak boleh diubah. Sebarang percubaan untuk mengubah suainya menyebabkan contoh baharu dibuat, manakala yang asal kekal tidak berubah. Ketidakbolehubahan ini membantu mengelakkan kesan sampingan yang tidak diingini dan menjadikan kod anda lebih mudah diramal.

Mengapa Menggunakan Struktur Data Tidak Boleh Ubah?

  • Kebolehramalan: Struktur data tidak boleh ubah menjadikannya lebih mudah untuk membuat alasan tentang kod anda kerana anda tahu bahawa setelah data ditetapkan, ia tidak akan ditukar secara tidak sengaja di tempat lain dalam aplikasi anda.
  • Nyahpepijat: Dengan tidak berubah, anda mengelakkan isu yang berkaitan dengan data diubah suai secara tidak dijangka, menjadikan penyahpepijatan lebih mudah.
  • Pengaturcaraan Berfungsi: Data tidak berubah sesuai dengan paradigma pengaturcaraan berfungsi, di mana fungsi mengelakkan kesan sampingan dan data dianggap tidak berubah.

Mencipta dan Menggunakan Rekod

Rekod adalah seperti objek tidak berubah. Ia ditakrifkan dengan struktur yang ditetapkan dan tidak boleh diubah selepas penciptaan. Berikut ialah pandangan ringkas tentang cara menggunakan Rekod:

// Creating an immutable Record const kittyFacts = 
#{ name: "Turbodog", age: 17, favoriteToy: "Laser Pointer" }; 
// Accessing values 
console.log(kittyFacts.name); 
// Outputs: Turbodog 
console.log(kittyFacts.favoriteToy); 
// Outputs: Laser Pointer 
// Attempting to modify will create a new instance 
const updatedKittyFacts = #{ ...kittyFacts, age: 18 };
console.log(kittyFacts.age); 
// Outputs: 17 (unchanged) 
console.log(updatedKittyFacts.age); 
// Outputs: 18 (new instance)
Salin selepas log masuk

Dalam contoh ini, kittyFacts ialah Rekod yang tidak boleh diubah. Sebarang pengubahsuaian padanya, seperti mengemas kini umur, menghasilkan RekodKittyFacts baharu yang dikemas kini, menjadikan kittyFacts asal tetap utuh.

Bekerja dengan Tuples

Tuples ialah tatasusunan tidak berubah yang boleh menyimpan bilangan elemen tetap. Ia amat berguna untuk mewakili koleksi tersusun nilai yang tidak boleh diubah.

// Creating an immutable Tuple 
const concertSetlist = #[ "Tupelo", "Live Oak", "Strawberry Woman", "Elephant" ]; 
// Accessing values 
console.log(concertSetlist[0]);
 // Outputs: Tupelo 
console.log(concertSetlist[2]);
 // Outputs: Strawberry Woman 
// Attempting to modify will create a new instance
 const updatedSetlist = #[...concertSetlist, "Chaos and Clothes"]; 
console.log(concertSetlist.length); 
 // Outputs: 4 (unchanged) 
console.log(updatedSetlist.length);
// Outputs: 5 (new instance)
Salin selepas log masuk

Di sini, concertSetlist ialah Tuple yang tidak boleh diubah. Menambah lagu baharu pada senarai set menghasilkan TupleSetlist yang dikemas kini baharu, mengekalkan yang asal.

Operasi Lanjutan dengan Rekod dan Tuple

Rekod dan Tuples datang dengan kaedah yang berguna untuk mengendalikan data secara kekal. Contohnya, kaedah dengan untuk Tuples membolehkan kemas kini mudah pada indeks tertentu:

// Creating a Tuple 
const originalMixtape = #[ "If We Were Vampires", "World Leader Pretend", "Right Back to It" ];
 // Updating a specific index 
const updatedMixtape = originalMixtape.with(1, "Turn You Inside-Out"); 
console.log(originalMixtape); 
// Outputs: #[ "If We Were Vampires", "World Leader Pretend", "Right Back to It" ]; 
console.log(updatedMixtape); 
// Outputs: #[ "If We Were Vampires", "Turn You Inside-Out", "Right Back to It" ];
Salin selepas log masuk

Dalam contoh ini, kaedah dengan mengemas kini trek pada indeks 1 tanpa mengubah Pita Campuran asal.

Kesimpulan

Struktur data tidak berubah—Rekod dan Tuples— telah diperkenalkan dalam ECMAScript 2024 dan mewakili peningkatan besar untuk JavaScript. Mereka membantu menggalakkan ketekalan data, memudahkan penyahpepijatan dan menjajarkan dengan baik dengan amalan pengaturcaraan berfungsi. Dengan bereksperimen dengan struktur tidak berubah ini, anda boleh mencipta aplikasi yang lebih dipercayai dan boleh diselenggara sambil mengelakkan kejutan biasa dan kesan sampingan data boleh ubah.

sumber:

https://www.interactivated.me/blog/whats-new-in-javascript-top-10-exciting-features-for-2024

https://thenewstack.io/whats-new-for-javascript-developers-in-ecmascript-2024/

https://www.w3schools.com/js/js_2024.asp

https://github.com/tc39/proposal-record-tuple

https://tc39.es/proposal-record-tuple/tutorial/

Atas ialah kandungan terperinci Struktur Data Tidak Boleh Ubah: Rekod dan Tuple dalam ECMA 4. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan