반응형
Ruby Koans의 test_changing_hashes에있는 개체 질문에 대한 답은 무엇입니까?
에서 루비 화두 , 섹션 about_hashes.rb는 다음 코드와 주석을 포함한다 :
def test_changing_hashes
hash = { :one => "uno", :two => "dos" }
hash[:one] = "eins"
expected = { :one => "eins", :two => "dos" }
assert_equal true, expected == hash
# Bonus Question: Why was "expected" broken out into a variable
# rather than used as a literal?
end
댓글에서 개체 질문에 대한 답을 수 없습니다. 실제로 그들이 제안한 대체를 시도한 결과는 동일합니다. 내가 알아낼 수있는 것은 가독성을위한 것이지만,이 튜토리얼의 다른 부분에서 언급 된 것과 같은 프로그래밍 조언을 묻습니다.
(이미 어딘가에서 답할 수있는 것처럼 들리지만 권위있는 것도 없습니다.)
다음과 같은 것을 사용할 수 없기 때문입니다.
assert_equal { :one => "eins", :two => "dos" }, hash
Ruby는 {...}이 블록이라고 생각합니다. 따라서 "하나로 분리"해야하지만 항상 사용할 수 있습니다.assert_equal({ :one => "eins", :two => "dos" }, hash)
여전히 다음과 같이 할 수 있습니다.
assert_equal true, { :one => "eins", :two => "dos" } == hash
사용할 수있는 또 다른 테스트는 다음과 다양합니다.
assert_equal hash, {:one => "eins", :two => "dos"}
매개 변수를 assert_equal
. 이 경우 Ruby는 예외를 발생시킬 수 있습니다.
그러나 그것은 여전히 나쁜 의견으로 나에게 좋지 않습니다. 별도의 변수를 사용하고 부울 조건을 테스트하면 훨씬 더 판독합니다.
반응형
'ProgramingTip' 카테고리의 다른 글
폴더 계층 구조에서 모든 git 콘텐츠를 한 수준 위로 이동해야합니까? (0) | 2021.01.07 |
---|---|
Windows 8에서 라이브 타일은 어떻게 만들어 집니까? (0) | 2021.01.07 |
음, std :: unique_ptr의 사용자 지정 (0) | 2021.01.07 |
접두사를 CTRL + A로 다시 매핑 한 후 tmux에서 줄 시작으로 이동하는 방법은 무엇입니까? (0) | 2021.01.07 |
TypeError : 문자 버퍼 개체가 필요합니다-정수를 텍스트 파일에 저장하는 동안 (0) | 2021.01.07 |