C#의 과 같은 일을 루비 운영자가 있습니까? 연산자?
?? 연산자는 0이 아닌 경우 왼쪽 피연산자를 반환하고 그렇지 않으면 은 오른쪽 피연산자를 반환합니다.
은 http://msdn.microsoft.com/en-us/library/ms173224.aspx
C#의 과 같은 일을 루비 운영자가 있습니까? 연산자?
?? 연산자는 0이 아닌 경우 왼쪽 피연산자를 반환하고 그렇지 않으면 은 오른쪽 피연산자를 반환합니다.
은 http://msdn.microsoft.com/en-us/library/ms173224.aspx
에서 오퍼레이터의 이름 null-coalescing operator이다. 링크 된 원본 블로그 게시물은 언어 간 병합에있어 차이점을 설명했습니다. C#과 Ruby null 통합의 새로운 비교는 here입니다. 한마디로
, 당신은 같이 ||
을 사용할 수 있습니다 : 당신이 거짓 병합 괜찮다면
a_or_b = (a || b)
, 당신은 사용할 수 있습니다 || 운영자 : 거짓이 유효한 값이 될 수있는 경우
a = b || c
, 당신은 할 수 있습니다 :
(B)가 전무 점검하고,이 경우, A는 경우 C의 값을 할당하고a = b.nil? ? c : b
그렇지 않다. b.
Ruby에는 일반적인 null 통합이 []
또는 0
또는 0.0
인 특정 기능이 있습니다.
(x || []).each do |y|
: (
NilClass
그들을 구현하므로)
대신
x = y || [] # or...
x = y || 0
은 ... 당신은 단지
x = y.to_a # => [] or ..
x = y.to_i # or .to_f, => 0
이 같은 특정 일반적인 디자인 패턴을 만드는 ... 할 수있는
... 조금 더 멋지게 보임 :
x.to_a.each do |y|
'[* x] .each do | y |'와 같이 자주 볼 수 있습니다. –
링크가 종료되었습니다. – orourkedd
@orourkedd 고마워, 나는 새로운 링크로 그것을 약간 수정했다. –
이것은 실제로 "위조 된 통합 연산자"입니다. – Kelvin