Ruby에서 위키 백과에서이 코드 블록을 발견했습니다 (자체적으로 인쇄하는 프로그램).ruby quine 이해하기
puts <<2*2,2
puts <<2*2,2
2
그러나 어떻게 작동하는지 알 수 없습니다. 특히 내가 얻지 못하는 것은 마지막 줄을 제거하면 다음과 같은 오류가 발생한다는 것입니다.
syntax error, unexpected $end, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
이 줄에는 어떤 현상이 발생합니까?
그러나 문자열의 끝 마커가' <','2 * 2,2' 순서가 아니어야하며, 마지막 줄에서 끝까지 동일한 순서를 사용해야합니까? – SasQ
'<<'의 우선 순위는'*'보다 가깝기 때문에'<< 2 * 2'는 "다음에 나오는 두 개의 종료 된 here 문서에 의해 표현 된 문자열에 다음과 같이 표현 된 문자열이 아니라 2를 곱한 것" 2 * 2로 종료 된 문서. " –