Pilihan Zip dalam Effect-TS: Panduan Praktikal

WBOY
Lepaskan: 2024-08-29 14:14:59
asal
549 orang telah melayarinya

Zipping Options in Effect-TS: A Practical Guide

Pilihan Zip dalam Effect-TS: Panduan Praktikal

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.

Contoh 1: Mengembalikan Pilihan Kedua dengan O.zipRight

Konsep

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.

Kod

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)
}
Salin selepas log masuk

Penjelasan

  • paip(some1, O.zipRight(some2)): Kedua-dua some1 dan some2 adalah Some, jadi fungsi mengembalikan Pilihan kedua, iaitu Some(2).
  • paip(some1, O.zipRight(none)): Memandangkan Pilihan kedua ialah Tiada, fungsi mengembalikan Tiada.
  • paip(tiada, O.zipRight(some2)): Pilihan pertama ialah Tiada, jadi fungsi mengembalikan Tiada, tanpa mengira Pilihan kedua.

Fungsi ini amat berguna apabila anda ingin melakukan operasi yang hasilnya bergantung semata-mata pada Pilihan kedua.

Contoh 2: Mengembalikan Pilihan Pertama dengan O.zipLeft

Konsep

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.

Kod

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)
}
Salin selepas log masuk

Penjelasan

  • paip(some1, O.zipLeft(some2)): Memandangkan kedua-dua Pilihan ialah Beberapa, fungsi mengembalikan Pilihan pertama, iaitu Some(1).
  • paip(some1, O.zipLeft(none)): Pilihan kedua ialah Tiada, jadi fungsi mengembalikan Tiada.
  • paip(tiada, O.zipLeft(some2)): Memandangkan Pilihan pertama ialah Tiada, fungsi mengembalikan Tiada.

Fungsi ini berguna apabila keputusan harus ditentukan oleh Pilihan pertama, tetapi anda masih mahu memastikan Pilihan kedua adalah sah.

Contoh 3: Menggabungkan Pilihan dengan Fungsi menggunakan O.zipWith

Konsep

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.

Kod

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)
}
Salin selepas log masuk

Penjelasan

  • paip(some1, O.zipWith(some2, add)): Kedua-dua Pilihan ialah Beberapa, jadi fungsi tambah digunakan, menghasilkan Some(3).
  • paip(some1, O.zipWith(tiada, tambah)): Memandangkan Pilihan kedua ialah Tiada, fungsi mengembalikan Tiada.
  • paip(tiada, O.zipWith(sesetengah2, tambah)): Pilihan pertama ialah Tiada, jadi fungsi mengembalikan Tiada.

Fungsi ini sesuai apabila anda perlu melakukan operasi pada nilai dua Pilihan, kerana ia memastikan kedua-dua nilai hadir sebelum operasi dilakukan.

Kesimpulan

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!

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