더 나은 스타일 무엇입니까? @Romain이 말했듯이, 선호되는 방법은 한 줄에 방법을 정의하는 것입니다.Ruby에서 한 줄에 메서드를 정의하는 더 좋은 방법 (더 나은 스타일)은 무엇입니까?</p> <pre><code>def method; some code end </code></pre> <p>또는</p> <pre><code>def method() some code end </code></pre> <p>이유 :
4
A
답변
9
가장 좋은 방법은 이 아니라입니다. 하나의 줄에 블록을 기록 할 때
def method
some code
end
2
어떤 사람들은 begin; end
대신 {}
를 사용합니다. 당신은 당신이 찾아내는 경우
def method
some code
end
: 다른 세 줄에 그것을 분할, 한 줄에하는 방법을 정의
class A
define_method(:method_name) { |arg1, arg2| do_something }
end
0
는 문서에서 수행해야합니다
은 어쩌면이 당신의 요구에 맞는 (예 : getter & setters) 많은 중복을 줄이기 위해 많은 메타 프로그래밍 기법 (예 : define_method
사용)이있을 수 있습니다. 예를 들어, 당신은 많은 게터에게 & setter를 정의 할 :attr_accessor
를 사용할 수 있습니다
class Person
# defines name, name=, age, age=, ...
attr_accessor :name, :age, :blood_type
end
Here이에 대해 이야기 루비 포럼입니다. 나는 또한 Metaprogramming Ruby을 읽는 것이 좋습니다. 그것은 당신의 문제를 해결하기위한 3 가지 또는 4 가지 방법뿐만 아니라 복제를 줄이기위한 다른 많은 기법들을 가지고 있습니다.
관련 문제
- 1. self.class_eval << DEF ... DEF
- 2. <code>text</code> = '<code>some text here</code>'와 클릭 수와 <code>A</code> 태그위한 iMacros
- 3. 메서드가 재정의되었음을 감지 할 수 있습니까?</p> <pre><code>class Foo def hi end end class Bar < Foo def hi end end </code></pre> <p>그리고 내가 매개 변수로 <code>Bar</code>을 통과하고있어 일부 코드가 있다고 가정 : 여기에 가정
- 4. 루비 클래스 메소드는 <pre><code>class UsersController < ApplicationController def dashboard @totalclose = Post.find_latest_closed @totalopen = Post.find_latest_open end end </code></pre> <p>PostController</p>에서
- 5. 나는이 분야 <code>UserId</code><code>DateStamp</code><code>Data</code> 또한 <code>CreditsLeft</code> (INT) 필드가 데이터베이스에 <code>User</code> 테이블이 <code>Id</code>와 <code>Statistic</code> 테이블이 데이터베이스 테이블
- 6. PHP는 오류 <<< _ END 사용하여 XAMPP
- 7. github add <<<<<<< HEAD
- 8. 레일/자바 스크립트 : 나는 다음과 같은 한 관점에서</p> <pre><code>@min_rating = 4 </code></pre> <p>: 다음</p> <pre><code><%= javascript_tag do %> min_rating = <%= @min_rating %> <% end %> </code></pre> <p>통과 인스턴스 변수는
- 9. Heredoc <<< 또는 <<?
- 10. </some/path/>
- 11. :</p> <p><strong>spec_helper (내가 바로 <code>end</code> 전에 파일의 맨 아래에 넣어) :</strong> OmniAuth
- 12. <code>URL</code>를 사용 <code>WebView</code>에 나는 <code>HTML</code> 페이지를 표시 한
- 13. python lt-method
- 14. Rails의 ActiveRecord는 경쟁 조건을 노출합니까? <code>c.value</code> 만 1 씩 증가하는 것이 가능하고, 두 개의 클라이언트가 동시에 <code>inc</code> 방법 액세스하면</p> <pre><code>class CountersController def inc c = Counter.find(1) c.value += 1 c.save! end end </code></pre> <p>:
- 15. 인쇄물과 같은 것 END << END; C++에서?
- 16. 맞춤 << 방법
- 17. StandartError를 사용하는 방법? 나는 다음과 같은 오류 얻을</p> <pre><code>#!/usr/bin/env ruby class WrongNumberOfPlayersError < StandartError ; end class NoSuchStrategyError < StandartError ; end </code></pre> <p>:
- 18. PHP 주석의 코딩 표준이 있습니까? 올바른 간격을 포함</p> <ul> <li><code>@var</code></li> <li><code>@param</code></li> <li><code>@return</code></li> <li><code>@throws</code></li> </ul> <p>:
- 19. 배열에 메서드를 매핑하는 방법은 무엇입니까?</p> <pre><code>(1..10).map &f </code></pre> <p>그것은 분명하지 않습니다이다 :</p> <pre><code>def f(x) x + 1 end </code></pre> <p>내가하고 싶은 것은과 같이 열거 가능한을 통해 매핑하는 것입니다
- 20. C++는 다음과 같습니다</p> <pre><code>ifstream filein("hey.txt"); if(filein.eof()){ cout<<"END"<<endl; } </code></pre> <p>"hey.txt"비어 : .eof 빈 파일에
- 21. 연산자 << : std :: cout << i << (i << 1);
- 22. 리팩토링은 내가 <code>new</code> 활동과 더불어, <code>TopicsController</code>이
- 23. 은 ABC는 결과를 예상 한 모든 로그를 선택 나는 <pre><code><< [ABC] some other data some other data >> << DEF some other data some other data >> << [ABC] some other data some other data >> </code></pre> <p>내가 원하는 형식</p> 다음의 로그가 여러 라인 패턴
- 24. Gemfile 구문 오류 : <<<<<<< localhost를 시작하려고 할 때 HEAD
- 25. 루비 객체에 블록이나 프로 시저에 전달하는 메소드가 있습니까? 만일이 같은 방법이 존재</p> <pre><code>class Object def yield_self yield(self) end end </code></pre> <p>않습니다
- 26. , 내가 <code>NSURLRequest</code> 및 <code>NSURLConnection</code>을 사용하고 웹 사이트 <code>viewDidLoad</code>에서
- 27. BIRT : 상기</p> <ul> <li><code>Integer</code></li> <li><code>Decimal</code></li> <li><code>Float</code></li> </ul> <p>: 숫자 타입 (형식) 지옥
- 28. <p>누군가가 당신의 문자열에 <code>JSNI</code></p>
- 29. 은 iTextSharp에게</p> <pre><code><table><tr><td><img src='images/my.jpg'/></td></tr><tr><td>some text</td></tr></table> </code></pre> <p>QUS pdf 파일의
- 30. Qt를 <code>.pro</code> 파일 <code>.pri</code> 파일들을 해당에서 명령</p> <pre><code>qmake -tp vc -r </code></pre> <p>내가 비주얼 스튜디오 <code>.sln</code> 파일 <code>.vcxproj</code> 파일들을 생성하고있어 함께 qmake를
나에게 묻는다면, 선호하는 방법은 여러 줄로 정의하는 것입니다 (적어도 3 개 이상을 말하기도합니다). – Romain
링크 된 질문에 언급 된 스타일 가이드를 읽는 것이 좋습니다. http://stackoverflow.com/questions/616037/ruby-coding-style-guidelines –