Rumah > hujung hadapan web > tutorial js > Meneroka Option Getters dalam Effect-TS

Meneroka Option Getters dalam Effect-TS

王林
Lepaskan: 2024-07-18 00:37:32
asal
680 orang telah melayarinya

Exploring Option Getters in Effect-TS

Effect-TS menyediakan set alat yang mantap untuk mengendalikan jenis Pilihan, yang mewakili nilai yang mungkin wujud atau tidak. Dalam artikel ini, kami akan meneroka pelbagai cara untuk mendapatkan nilai dalam Opsyen menggunakan getter berbeza yang disediakan oleh pustaka.

Contoh 1: Menggunakan O.getOrElse

Fungsi O.getOrElse membolehkan anda memberikan nilai lalai jika Pilihan adalah Tiada. Ini berguna apabila anda ingin memastikan nilai sandaran sentiasa tersedia.

import { Option as O, pipe } from 'effect';

function getters_ex01() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some, O.getOrElse(() => 'none'))); // Output: 1 (since some contains 1)
  console.log(pipe(none, O.getOrElse(() => 'none'))); // Output: 'none' (since none is None)
}
Salin selepas log masuk

Contoh 2: Menggunakan O.getOrThrow

Fungsi O.getOrThrow mengembalikan nilai di dalam Option jika ia adalah Beberapa, jika tidak, ia akan melemparkan ralat lalai.

import { Option as O, pipe } from 'effect';

function getters_ex02() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some, O.getOrThrow)); // Output: 1 (since some contains 1)

  try {
    console.log(pipe(none, O.getOrThrow)); // This will throw an error
  } catch (e) {
    console.log(e.message); // Output: getOrThrow called on a None
  }
}
Salin selepas log masuk

Contoh 3: Menggunakan O.getOrNull

Fungsi O.getOrNull mengembalikan nilai di dalam Option jika ia adalah Beberapa, jika tidak ia mengembalikan nilai nol.

import { Option as O, pipe } from 'effect';

function getters_ex03() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some, O.getOrNull)); // Output: 1 (since some contains 1)
  console.log(pipe(none, O.getOrNull)); // Output: null (since none is None)
}
Salin selepas log masuk

Contoh 4: Menggunakan O.getOrUndefined

Fungsi O.getOrUndefined mengembalikan nilai di dalam Option jika ia adalah Sebilangan, jika tidak ia mengembalikan tidak ditentukan.

import { Option as O, pipe } from 'effect';

function getters_ex04() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some, O.getOrUndefined)); // Output: 1 (since some contains 1)
  console.log(pipe(none, O.getOrUndefined)); // Output: undefined (since none is None)
}
Salin selepas log masuk

Contoh 5: Menggunakan O.getOrThrowWith

import { Option as O, pipe } from 'effect';

function getters_ex05() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some, O.getOrThrowWith(() => new Error('Custom Error')))); // Output: 1 (since some contains 1)

  try {
    console.log(pipe(none, O.getOrThrowWith(() => new Error('Custom Error')))); // This will throw a custom error
  } catch (e) {
    console.log(e.message); // Output: Custom Error
  }
}
Salin selepas log masuk

Kesimpulan

Dengan menggunakan pengambil yang berbeza ini, anda boleh mengendalikan jenis Opsyen dengan berkesan dalam pelbagai senario, memastikan kod anda berfungsi dengan betul sama ada Pilihan ialah Beberapa atau Tiada. Utiliti ini menyediakan cara yang jelas dan selamat jenis untuk bekerja dengan nilai pilihan, mengelakkan perangkap biasa yang dikaitkan dengan semakan nol dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda. Mengguna pakai corak ini boleh membawa kepada pangkalan kod yang lebih bersih dan teguh di mana

Atas ialah kandungan terperinci Meneroka Option Getters dalam Effect-TS. 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