2016-12-20 6 views
-4

나는 레일즈에서 일하고있다.루비 : << - 연산자

result = Arel::Nodes::SqlLiteral.new(<<-SQL 
    CASE WHEN condition1 THEN calculation1 
    WHEN condition2 THEN calculation2 
    WHEN condition3 THEN calculation3 
    ELSE default_calculation END 
SQL) 

가이 코드 조각이 무슨 이해 : 내 코드베이스에서,이 같은 Arel::SqlLiteral를 사용하여 라인을 참조하십시오. 내가 이해하지 못하는 것은이 시점에서, 그 문법이다 :

Arel::Nodes::SqlLiteral.new(<<-SQL 
    ... 
    SQL 
) 

그래서 루비에, 이름으로 <<- 추적의 문법 무엇을하고 마지막 블록에서 우리는 그 이름을 부른다.

감사

+0

나는 진짜로 왜 중복을 표시 한 후에, 나는 아직도 투표를 받는다 : D 완전히 말도 안되는 이유를 이해하지 못한다. DI는 내가 투표 할 수있는 사람들을 생각하지 않는다. ^^ –

+0

더구나, 그들이 구글의 << << - 연산자 '는 DI가 결과없이 시도한 것을 의미합니다. 다행히도 그들은 몇 가지 행동을하기 전에 두 번 생각해야합니다. D 존중하는 사람들이 주위를 존중합니다. 그들은 점점 더 증오가 될 것입니다. 감사합니다. –

답변

1

당신이 찾고있는 키워드는 '히어 닥 "입니다.

https://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Here+Documents

주로 쉘/shellscripts에 대한 큰 텍스트와 관행을 싸게 치장하는 데 사용. 상단의 마커는 heredoc의 시작과 하단의 마커를 나타냅니다 (여는 마커 앞에 "-"를 붙이지 않는 한 들여 쓰기되어서는 안됨). 끝을 지정합니다.

+0

. 정말로 누군가 당신의 대답에 투표하는 이유를 모르겠다. D 조 나를 돕는다. 그리고 적어도 뭔가 잘못하고있는 것은 아닙니다 ^^ 가난합니다. –