:each
은 String
과 비슷하지만 동등한 비교가 더 효율적입니다. Symbol
입니다. 아니요 메서드입니다. 그것은 이름 일 수 있습니다.
respond_to?
은 거의 모든 Ruby 객체가 궁극적으로 상속하는 Object
에 정의 된 메소드입니다.
[1, 2, 3, 4].each
라고 말하면 :each
메시지는 Array
개체 [1, 2, 3, 4]
으로 전송됩니다. Array
클래스 개체는 해당 인스턴스에서 이러한 메시지를받을 때 수행 할 작업을 알 수 있으므로 Array.respond_to?(:each)
을 반환하고 true
을 반환합니다. 기본적으로 array.respond_to?(:each)
이 false
인 경우 array.each
은 오류를 발생시킵니다. [주석에 p11y 메모가있는 경우 array
이 실제로 Array
인 경우 항상 true
을 반환합니다. 그러나 프로그래머는 거짓말을 할 수 있으며 array
은 Array
일 필요는 없습니다. 예 : array = "not an Array, fooled you!"
]
[1, 2, 3, 4].respond_to? :each
은 [1, 2, 3, 4].respond_to?(:each)
과 같습니다.
한 줄에 여러 문장을 채우고 싶다면 루비에서만 세미콜론이 필요합니다. C에서와 달리, 예를 들어, 세미콜론이 문 자 종료 자 인 경우, 루비에서는 구문 구분 기호입니다. 따라서 array = [1, 2, 3, 4];
을 쓰는 것은 나쁜 스타일입니다.
+1 당신은 훨씬 더 잘 설명했습니다. 부가 메모 : 변수'array'는 배열과 다른 무언가를 포함 할 수 있기 때문에 실제 이름이 잘못되었습니다. –
감사합니다. 좋은 지적입니다. – Amadan
톤 감사합니다! 기분이 훨씬 나아졌습니다 ~! : D도, 나는 우리가 문자열을 정의하는 경우 : – wiwengweng