루비에서 주석 사용 방법

루비에서 주석 사용 방법

2022-06-01 last update

16 minutes reading Ruby Development

소개


주석은 컴퓨터 프로그램에서 컴파일러와 해석기에 의해 무시된 줄입니다.다른 프로그래머에게 프로그램의 모든 부분에서 실행 중인 내용에 대한 상하문이나 설명을 더 많이 제공하여 프로그램을 이해하기 쉽게 할 수 있습니다.또한 특정 해결 방안을 선택한 이유를 설명할 수 있으며, 복구 방안을 제정할 때 프로그램의 문제나 불완전한 부분의 임시 집행을 방지할 수도 있습니다.
일부 주석은 코드에 영원히 남아 있을 수 있다. 예를 들어 상하문을 설명하는 주석은 임시적일 수도 있고, 예를 들어 프로그램을 구축할 때 남긴 주석은 임시적일 수도 있다.
루비 프로그램에서 주석을 사용하여 주석을 남기는 방법과 디버깅 도구로 사용하는 방법을 보여 줍니다.

주석 구문 및 용법


Ruby의 메모는 다음과 같이 해시 태그#로 시작하여 행 끝까지 계속됩니다.
# This is a comment in Ruby
이것은 필요하지 않지만, 주석의 가독성을 높이기 위해 해시 표시 뒤에 공백을 두어야 합니다.
프로그램을 실행할 때, 코드에서 주석의 지시를 볼 수 없습니다.루비 해석기는 완전히 무시합니다.주석은 컴퓨터가 실행하는 것이 아니라 원본 코드에서 읽을 수 있다.
간단한 Ruby 프로그램, 예를 들어 튜토리얼How to Write Your First Ruby Program의 프로그램에서 코드의 각 부분에서 발생하는 상황에 대한 자세한 정보를 설명할 수 있습니다.
인사말.rb형
# Display a prompt to the user
puts "Please enter your name."

# Save the input they type and remove the last character (the enter keypress)
name = gets.chop

# Print the output to the screen
puts "Hi, #{name}! I'm Ruby!"
이 평론들은 프로그램의 각 부분의 기능과 작업 방식을 대체적으로 이해하게 합니다.
HTML 목록으로 컨텐트를 반복하여 표시하는 프로그램에서 다음과 같은 주석을 볼 수 있습니다. 이 주석들은 코드의 역할에 대해 더 많은 설명을 제공합니다.
상어.rb형
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

# transform each entry in the array to an HTML entity, with leading spaces and a newline.
listitems = sharks.map{ |shark| "  <li>#{shark}</li>\n"}

# Print the opening <ul>, then print the array of list items
print "<ul>\n#{listitems.join}</ul>"
mapjoin 같은 내용에 익숙하지 않을 수도 있지만, 이 주석들은 프로그램이 어떻게 작동하고 출력해야 하는지, 어떤 모습일지 알려 줍니다.해봐.이 코드를 sharks.rb 라는 파일에 놓고 실행하십시오.
  1. ruby sharks.rb
프로그램의 출력을 볼 수 있습니다.
Output
<ul> <li>hammerhead</li> <li>great white</li> <li>dogfish</li> <li>frilled</li> <li>bullhead</li> <li>requiem</li> </ul>
해석기가 주석을 무시했기 때문에 주석을 보지 못했습니다.그러나 출력은 예상과 일치할 수 있습니다.평론은 매우 좋은 교류 도구이다. 특히 평론을 읽는 사람들이 이런 언어에 대해 아직 낯설을 때.
주석은 주석의 코드와 같이 들여써야 한다.즉, 들여쓰기가 없는 클래스 정의에는 들여쓰기가 없는 주석이 있고, 뒤에 있는 들여쓰기 단계마다 주석의 코드에 맞는 주석이 있습니다.
예를 들어 이것은 Magic 8-Ball 게임의 루비 구현이다.컴퓨터는 네가 제기한 문제에 랜덤으로 대답할 것이다.주석의 들여쓰기 수준은 각 섹션의 코드 들여쓰기 수준과 같습니다.
magic8ball.rb형
# The Eightball class represents the Magic 8-Ball.
class Eightball
  
  # Set up the available choices
  def initialize
      @choices = ["Yes", "No", "All signs point to yes", "Ask again later", "Don't bet on it"]
  end
  
  # Select a random choice from the available choices
  def shake
    @choices.sample
  end
end

def play
  puts "Ask the Magic 8 Ball your question."

  # Since we don't need their answer, we won't capture it.
  gets

  # Create a new instance of the Magic 8 Ball and use it to get an answer.
  eightball = Eightball.new
  answer = eightball.shake
  puts answer
  
  # Prompt to restart the game and evaluate the answer.
  puts "Want to try again? Press 'y' to continue or any other key to quit."
  answer = gets.chop
  
  if answer == 'y'
    play
  else
    exit
  end
end

# Start the first game.
play
주석은 원시 프로그래머든 협업 프로젝트를 사용하는 사람이든 프로그래머를 도와야 한다.이것은 코드처럼 주석을 유지해야 한다는 것을 의미한다.코드와 모순되는 주석은 주석이 아예 없는 것보다 더 나쁘다.
네가 처음 시작했을 때, 너는 네가 무엇을 하는지 이해하는 데 도움을 줄 수 있는 많은 평론을 쓸 수 있다.그러나 더 많은 경험을 얻게 됨에 따라, 코드의 배후 원인을 설명하기 위해 주석을 사용해야 합니다.코드가 특별히 복잡하지 않으면, 코드를 보면 코드가 무엇을 하고 있는지 어떻게 하는지 알 수 있다.
예를 들어, Ruby를 이해하면 다음과 같은 설명이 도움이 되지 않습니다.
# print "Hello Horld" to the screen.
print "Hello World"
이 주석은 코드가 실행된 동작을 재확인합니다. 비록 프로그램의 출력에 영향을 주지 않지만, 코드를 읽을 때 추가 소음이 발생합니다.
때때로 너는 좀 더 상세한 평론을 써야 한다.이것이 바로 블록 주석의 용도입니다.

메모 차단


블록 주석을 사용하여 더 복잡한 코드나 독자가 익숙해지기를 원하지 않는 코드를 설명할 수 있습니다.이러한 긴 형식의 주석은 아래의 부분이나 모든 코드에 적용되고 코드와 같은 단계에서 축소된다.
블록 주석에서, 모든 줄은 해시 표시로 시작하고, 다음에 빈칸을 따라 읽기 쉽도록 한다.여러 단락을 사용해야 하는 경우 단일 해시 태그를 포함하는 행으로 단락을 구분해야 합니다.
다음은 Sinatra 웹 프레임워크 소스 코드에서 나온 블록 주석 예입니다.이것은 다른 개발자에게 이 특정 코드가 어떻게 작동하는지에 대한 상하문을 제공한다.
https://github.com/sinatra/sinatra/blob/master/lib/sinatra/base.rb
...
  # Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however,
  # some middleware (namely Rack::Lint) will break it by not mirroring the methods in question.
  # This middleware will detect an extended body object and will make sure it reaches the
  # handler directly. We do this here, so our middleware and middleware set up by the app will
  # still be able to run.
  class ExtendedRack < Struct.new(:app)
    def call(env)
      result, callback = app.call(env), env['async.callback']
      return result unless callback and async?(*result)
      after_response { callback.call result }
      setup_close(env, *result)
      throw :async
    end
...
코드 세션을 철저하게 설명해야 할 때 블록 주석은 매우 유용합니다.단, 코드에 대한 과도한 설명을 피해야 합니다. 왜냐하면 이 주석들은 불필요한 것일 수도 있고 추가적인 소음이 발생할 수 있기 때문입니다.다른 프로그래머를 믿고 루비 코드를 이해합니다. 당신이 특정한 독자를 위해 작성한 것이 아니라면.주석은 반복 코드가 아니라 상하문을 추가해야 한다.
Ruby는 여러 줄 주석의 대체 구문을 가지고 있지만 거의 사용하지 않습니다.다음은 예입니다.
여러 줄.rb형
=begin
This is a multi-line comment.
You can use this approach to make your comments
span multiple lines without placing hash marks at the start of each
line.
=end
=begin=end 행은 행의 시작 부분에 있어야 합니다.그것들은 움츠러들 수 없다.바로 이 때문에 너는 이것이 사용되는 것을 거의 보지 못한다.
다음은 내연 주석을 봅시다.

인라인 메모


내연 주석은 문장의 같은 줄에 나타나 코드 자체에 바짝 붙어 있다.다른 주석과 마찬가지로, 그것들은 해시 표시로 시작하고, 다음에 빈칸 문자를 붙여서 읽기 편리하게 한다.
일반적으로 내연 주석은 다음과 같습니다.
[code]  # Inline comment about the code
내연 주석은 조심스럽게 사용해야 하지만 코드의 까다롭거나 뚜렷하지 않은 부분을 설명하는 데 효과적일 수 있다.만약 당신이 미래에 작성할 코드를 기억하지 못할 수도 있고, 코드에 익숙하지 않을 수도 있는 모든 사람들과 협력하고 있다고 생각한다면, 그것들도 매우 유용하다.
예를 들어, Ruby 프로그램에서 수학을 많이 사용하지 않는 경우 사용자나 파트너가 다음 내용을 모르면 복잡한 숫자가 만들어지기 때문에 이 숫자에 대한 내연 주석을 포함할 수 있습니다.
a=Complex(4,3) # Create the complex number 4+3i
또한 인라인 메모를 사용하여 작업을 수행한 이유를 설명할 수 있습니다.
pi = 3.14159 # Intentionally limiting the value of pi for this program.
필요한 경우와 프로그램을 읽는 사람에게 유용한 지도를 제공할 수 있는 경우에만 줄의 주석을 사용해야 한다.

주석 테스트 코드


주석을 코드를 기록하는 방식으로 사용하는 것 외에, 현재 만든 프로그램을 테스트하거나 디버깅할 때 실행하지 않으려는 코드를 해시 태그로 표시할 수도 있습니다.때때로, 새 코드 줄을 추가한 후에 오류가 발생했을 때, 그 중의 일부 오류를 주석해서 해소 과정을 통해 문제를 해결할 수 있는지 확인하기를 원할 수도 있습니다.
예를 들어 마법 8구 게임에서 게임이 다시 실행되는 것을 막고 싶을 수도 있습니다. 코드의 정확한 계산 답안만 확보하고 싶기 때문입니다.게임을 다시 시작하는 코드 줄을 메모할 수 있습니다.
8골.rb형
...
  
  # Prompt to restart the game and evaluate the answer.
  puts "Want to try again? Press 'y' to continue or any other key to quit."
  answer = gets.chop
  
  if answer == 'y'
    # play
  else
    exit
  end
end
...
  
주석을 사용하면 코드에서 해결 방안을 실현하는 방법을 결정할 때 다른 방법을 시도할 수 있습니다.예를 들어, Ruby에서 배열을 사용할 때 여러 가지 다른 방법을 시도해야 할 수도 있습니다.메모를 사용하여 각 방법을 테스트하고 가장 선호하는 방법을 확인할 수 있습니다.
상어.rb형
sharks = ["Tiger", "Great White", "Hammerhead"]

# for shark in sharks do
#  puts shark
# end

sharks.each do |shark|
  puts shark
end
주석 코드는 다른 프로그래밍 방법을 시도할 수 있고, 일부 프로그램을 체계적으로 주석하고 실행하여 오류의 출처를 찾을 수 있도록 도와줍니다.

결론


루비 프로그램에서 설명을 사용하면 프로그램이 인류에게 더욱 가독성을 가지게 할 수 있습니다. 미래의 자아를 포함합니다.관련되고 유용한 적당한 주석을 포함하여 다른 사람들이 당신과 합작하여 프로그래밍 프로젝트를 진행하기 쉽게 할 수 있습니다.오랜 시간 후에 프로젝트에 다시 접근할 때, 프로젝트는 미래에 작성될 코드를 이해하는 데 도움을 줄 것입니다.