null kết hợp dịch gần nghĩa là return x, unless it is null, in which case return y
Tôi thường cần return null if x is null, otherwise return x.y
tôi có thể sử dụng return x == null ? null : x.y;
Không tệ, nhưng điều đó null
ở giữa luôn làm tôi khó chịu - có vẻ như thừa. Tôi muốn một cái gì đó giống như return x :: x.y;
, trong đó những gì theo sau chỉ ::
được đánh giá nếu những gì đứng trước nó thì không null
.
Tôi thấy điều này gần như đối lập với kết hợp rỗng, kiểu trộn lẫn với kiểm tra null nội tuyến ngắn gọn, nhưng tôi [ gần như ] chắc chắn rằng không có toán tử nào như vậy trong C #.
Có ngôn ngữ nào khác có toán tử như vậy không? Nếu vậy, những gì nó được gọi là?
(Tôi biết rằng tôi có thể viết một phương thức cho nó trong C #; tôi sử dụng return NullOrValue.of(x, () => x.y);
, nhưng nếu bạn có bất kỳ điều gì tốt hơn, tôi cũng muốn xem điều đó.)