penggabungan nol diterjemahkan secara kasar menjadi return x, unless it is null, in which case return y
Saya sering membutuhkan return null if x is null, otherwise return x.y
Saya bisa menggunakan return x == null ? null : x.y;
Lumayan, tapi yang null
di tengah selalu menggangguku - sepertinya berlebihan. Saya lebih suka sesuatu seperti return x :: x.y;
, di mana yang mengikuti ::
dievaluasi hanya jika yang mendahuluinya tidak null
.
Saya melihat ini sebagai hampir berlawanan ke nol koalesensi, jenis campuran di dengan singkat, inline null-cek, tapi aku [ hampir ] tertentu yang tidak ada operator seperti di C #.
Apakah ada bahasa lain yang memiliki operator seperti itu? Jika ya, apa namanya?
(Saya tahu bahwa saya dapat menulis metode untuk itu di C #; Saya menggunakan return NullOrValue.of(x, () => x.y);
, tetapi jika Anda memiliki sesuatu yang lebih baik, saya ingin melihatnya juga.)