2012-03-11 3 views
2

end 구분 기호를 Ruby에 쓰어야합니까? 파이썬이나 CoffeeScript처럼 들여 쓰기로 해석 할 수 없습니까? 그것은 미래에 가능 또는 해결 방법이있는 것입니다하지 않으면Ruby의`end` 구분 기호가 중복됩니까?

class String 
    COLORS.each do |color,code| 
    define_method "in_#{color}" do 
     "<span style=\"color: ##{code}\">#{self}</span>" 
    end 
    end 
end 

class String 
    COLORS.each do |color,code| 
    define_method "in_#{color}" do 
     "<span style=\"color: ##{code}\">#{self}</span>" 

로 나에게 훨씬 더 잘 볼 것인가? Ruby로 컴파일되는 언어가 있습니까 (예 : CoffeeScript가 JS로 컴파일 됨)?

+0

4 분 후에 와우, 4 답변! 질문에 대한 축하;) – knut

+0

@ 결정 : 그것은 간단한 질문입니다 :) –

+0

@knut 여기에 4 가지 질문이 있습니다! :) 1. 공간 대 들여 쓰기 (충분한 답변); 2. 미래에도 가능할 것인가? (아니!); 3. 해결 방법이 있습니까? 4. Ruby로 컴파일되는 언어가 있습니까? (누군가는 들여 쓰기에서 끝까지 회화를 만들고 싶어 할 것입니다.) –

답변

2

루비 공백은 중요하지 않습니다. 따라서 코드 블록이 시작되고 끝나는 지점을 명확하게 표시해야합니다.

이 당신에게 구문 오버 헤드처럼 보이는 경우에, 당신은 파이썬에서 찾아야한다 : (나는 바로 이런 이유로 그것을 좋아하지 않아 : 중요한 공간)

2

을 이유는 단지 맛 언어 디자이너 (Matz부터 시작). 많은 사람들이 들여 쓰기 기반 언어를 좋아하지 않습니다. 그렇다면 HAML이나 Coffeescript와 같은 일부 사람들이 Ruby 세계에서 성공하는 것이 재미 있다는 것은 당연합니다.

그럼에도 불구하고 루비 자체는 들여 쓰기가되지 않을 것입니다. 해당 기능과 함께 범용 언어를 사용하려면 Coffeescript (Javascript로 컴파일 됨) 또는 Python을 살펴 봐야합니다.

+0

나는 들장미를 제외하고 모든 것을 위해 HAML을 좋아합니다. 나는 거의 모든 것이 너무 불균형 해 보이기 때문에 거의 항상 '끝'이되는 주석을 달았습니다. –

+0

일부는 그것을 좋아하고, 일부는 그것을 싫어합니다. 나는 이전의 삶에서 파이썬 프로그래머 였으므로 아무런 문제가 없다. :) (여전히 haml을 선호한다.) –

1

루비가 들여 쓰기를했다면 들여 쓰기로 추측 할 수 있습니다. 파이썬이 큰 예외가되어 오늘날 가장 대중적인 언어는 의미 상으로 중요한 들여 쓰기가 없습니다.

2

언어 디자인의 선택입니다. 공간 기반 블록 구분 기호를 좋아한다면 Python을 사용하십시오.

class String 
    COLORS.each { |color,code| 
    define_method "in_#{color}" { 
     "<span style=\"color: ##{code}\">#{self}</span>" } } 
end 
+0

나는 파이썬에 대해 알고있다. 따라서 나는 그것에 대해 언급했다. 나는 이것이 어떤 언어를 사용할지를 결정 짓는 요소가 될 것이라고 생각하지 않는다. 나는 Sinatra를 Ruby에 사용하는 것에 관심이 있었고, 내가 끝내는 유일한 것은 과도한'end' 구분자 (그리고 어쩌면 비 전통적인 syntax) 일 것이다. 나는'end' 구분자를 사용하지 않는 언어를 찾고 있지 않다. Ruby에서 그것을 피할 수있는 방법을 찾고있다. –

+1

@BillyMoon, 당신은'do' ...'end' 대신에 중괄호''''''''를 사용할 수 있습니다. 'def','class','module' 등과 같이 닫는'end'가 필요한 것들에는 사용할 수 없습니다. –

2

나는 그것이 중복의 동의하지만, 현재 주변의 유일한 방법은 대신 괄호를 사용하는 것 바로 그 부분 (특히 하스켈과 파이썬)이지만, 단점은 중복 정보가 적기 때문에 들여 쓰기를 표준화하는 것이 훨씬 더 어색하다는 것입니다. 또한 탭 대 공간의 사용은 개인적인 취향 (그리고 작업 후 바에서의 토론)과는 대조적으로 중요한 거룩한 전쟁의 문제가된다는 것을 의미합니다.

+0

에 동의했지만 생각에 감사드립니다. –

0

일부 언어 수행 (난 당신이 훨씬 더 무서운 점에 동의 것 같은데요)

관련 문제