Dalam pengaturcaraan berfungsi, menggabungkan berbilang nilai pilihan (diwakili sebagai Pilihan) dengan cara yang selamat dan boleh diramal adalah tugas biasa. Effect-TS menyediakan beberapa kaedah untuk "zip" Pilihan bersama-sama, membolehkan anda menggabungkan nilainya atau memilih satu berdasarkan peraturan tertentu. Dalam artikel ini, kami akan meneroka tiga fungsi utama untuk Pilihan zip: O.zipRight, O.zipLeft dan O.zipWith.
Fungsi O.zipRight membolehkan anda menggabungkan dua Pilihan, membuang yang pertama dan mengembalikan yang kedua. Operasi ini berjaya jika kedua-dua Pilihan adalah Beberapa; jika tidak, ia tidak mengembalikan Tiada.
function zipping_ex01() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log(pipe(some1, O.zipRight(some2))); // Output: Some(2) (returns the second Option) console.log(pipe(some1, O.zipRight(none))); // Output: None (since the second Option is None) console.log(pipe(none, O.zipRight(some2))); // Output: None (since the first Option is None) }
Fungsi ini amat berguna apabila anda ingin melakukan operasi yang hasilnya bergantung semata-mata pada Pilihan kedua.
Fungsi O.zipLeft ialah rakan sejawat dengan O.zipRight, membolehkan anda menggabungkan dua Pilihan sambil membuang yang kedua dan mengembalikan yang pertama. Sekali lagi, operasi ini berjaya jika kedua-dua Pilihan adalah Beberapa; jika tidak, ia tidak mengembalikan Tiada.
function zipping_ex02() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log(pipe(some1, O.zipLeft(some2))); // Output: Some(1) (returns the first Option) console.log(pipe(some1, O.zipLeft(none))); // Output: None (since the second Option is None) console.log(pipe(none, O.zipLeft(some2))); // Output: None (since the first Option is None) }
Fungsi ini berguna apabila keputusan harus ditentukan oleh Pilihan pertama, tetapi anda masih mahu memastikan Pilihan kedua adalah sah.
Fungsi O.zipWith menyediakan paling fleksibel, membolehkan anda menggabungkan nilai dua Pilihan menggunakan fungsi yang disediakan. Jika kedua-dua Pilihan adalah Beberapa, fungsi itu digunakan, dan hasilnya dibalut dengan Pilihan baharu. Jika salah satu Pilihan ialah Tiada, fungsi itu mengembalikan Tiada.
function zipping_ex03() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value const add = (a: number, b: number) => a + b; console.log(pipe(some1, O.zipWith(some2, add))); // Output: Some(3) (since 1 + 2 = 3) console.log(pipe(some1, O.zipWith(none, add))); // Output: None (since the second Option is None) console.log(pipe(none, O.zipWith(some2, add))); // Output: None (since the first Option is None) }
Fungsi ini sesuai apabila anda perlu melakukan operasi pada nilai dua Pilihan, kerana ia memastikan kedua-dua nilai hadir sebelum operasi dilakukan.
Pilihan Zip dalam Effect-TS ialah cara yang berkesan untuk menggabungkan nilai pilihan dengan selamat. Sama ada anda berminat dengan Pilihan pertama, kedua atau gabungan kedua-duanya, fungsi O.zipRight, O.zipLeft dan O.zipWith menyediakan alatan yang anda perlukan untuk mengendalikan senario ini dengan cekap. Dengan memahami dan menggunakan corak ini, anda boleh menulis kod fungsian yang lebih mantap dan boleh diramal.
Atas ialah kandungan terperinci Pilihan Zip dalam Effect-TS: Panduan Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!