[RUBY] Informationen zu Bereich und Umfang, in denen Day16-Variablen verwendet werden können

Zusammenfassung der übergebenen Variablen

ReviewApp


def post_review
  post = {}
  puts "Bitte geben Sie ein Genre ein:"
  post[:genre] = gets.chomp
  puts "Bitte geben Sie einen Titel ein:"
  post[:title] = gets.chomp
  puts "Bitte geben Sie Ihre Gedanken ein:"
  post[:review] = gets.chomp
  line = "---------------------------"

  #Eine Bewertung zeichnen
  puts "Genre: #{post[:genre]}\n#{line}"
  puts "Titel: #{post[:title]}\n#{line}"
  puts "Impressionen:\n#{post[:review]}\n#{line}"

  #Zum Array-Objekt hinzufügen
  posts << post
end

↑ In diesem Fall ist posts in der post_review-Methode nicht definiert, also NG. Grundsätzlich können nur die in der Methode definierten Variablen verwendet werden. Um dies verfügbar zu machen, verwenden wir ein sogenanntes Argument.

ReviewApp


def post_review (a_posts)
  post = {}
  puts "Bitte geben Sie ein Genre ein:"
  post[:genre] = gets.chomp
  puts "Bitte geben Sie einen Titel ein:"
  post[:title] = gets.chomp
  puts "Bitte geben Sie Ihre Gedanken ein:"
  post[:review] = gets.chomp
  line = "---------------------------"

  #Eine Bewertung zeichnen
  puts "Genre: #{post[:genre]}\n#{line}"
  puts "Titel: #{post[:title]}\n#{line}"
  puts "Impressionen:\n#{post[:review]}\n#{line}"

  #Zum Array-Objekt hinzufügen
  a_posts << post

  # a_gibt Beiträge an den Methodenaufrufer zurück
  return a_posts
end

#Generieren von Array-Objektbeiträgen
posts = []

while true do
  #Menü anzeigen
  puts "Anzahl der Bewertungen: 0"
  puts "[0]Ich schreibe eine Bewertung"
  puts "[1]Bewertungen lesen"
  puts "[2]Beenden Sie die App"
  input = gets.to_i

  if input == 0 then
    posts = post_review(posts)  # post_Überprüfungsmethode aufrufen
  elsif input == 1 then
    read_reviews                # read_Rufen Sie die Überprüfungsmethode auf
  elsif input == 2 then
    end_program                 # end_Rufen Sie die Programmmethode auf
  else
    exception                   #Rufen Sie die Ausnahmemethode auf
  end
end

Der Aufrufer sollte diesen Rückgabewert den variablen Posts zuweisen. Ich konnte Überprüfungsinformationsbeiträge zu den Arrayobjektbeiträgen hinzufügen, die Überprüfungen mithilfe von Argumenten verwalten.

① Rufen Sie die post_review-Methode mit posts = post_review (posts) mit posts als Argument auf

② Kopieren Sie in der post_review-Methode Beiträge in eine Variable namens a_posts.

③ Fügen Sie a_posts in der Methode post_review einen Hash hinzu und geben Sie a_posts zurück

④ Ersetzen Sie die zurückgegebenen a_posts durch Beiträge durch posts = post_review (posts)

<Regeln für die Verwendung von Argumenten>

  1. Schreiben Sie sowohl "den Teil, der die Methode definiert" als auch "den Teil, der die Methode aufruft" ein.
  2. Die Namen "Dummy-Argument" und "tatsächliches Argument" müssen nicht übereinstimmen

Ausführen einer Methode mit einem Argument


def multi(number)         #In der Methodendefinition wird number als formales Argument verwendet.
  puts number * number
end

puts "Bitte geben Sie eine Nummer ein"
value = gets.to_i

multi(value)             #Bei der tatsächlichen Verwendung der Multi-Methode wird der Wert anstelle der vorherigen Zahl platziert.

Recommended Posts

Informationen zu Bereich und Umfang, in denen Day16-Variablen verwendet werden können
Bereich, in dem Variablen mit Ruby verwendet werden können [Scope]
Java-Variablenbereich (Bereich, in dem Variablen angezeigt werden)
Über den Fall, dass ("b" .. "aa") nicht in Ruby Range verwendet werden konnte
[Spring Data JPA] Kann die And-Bedingung in der automatisch implementierten Löschmethode verwendet werden?
[Frage] Kann nullif in der Zählfunktion in JPQL verwendet werden?
Hinweise zum Umfang
Ungefähr der gleiche und der gleiche Wert
Über Instanzvariablen und attr_ *
Erstellen Sie eine Umgebung, in der pip3 mit CentOS7 + Python3 verwendet werden kann
Mit Pg_resetwal kann der PostgreSQL Docker-Container gestartet werden, wenn WAL fehlerhaft ist und nicht gestartet werden kann.
Über die Sprache, die von nun an zu lernen ist
Einfache Implementierung eines Spielautomaten, die mit Kopie verwendet werden kann
Wo kann ich mich nach Februar 2019 über Java-Versionen informieren? Über das Problem
[Java] Variablen, die innerhalb der `for-Anweisung` deklariert sind, können nicht außerhalb des` for-Anweisungsblocks` verwendet werden
Tools zur Leistungsanalyse und Fehlerdiagnose, die mit OpenJDK verwendet werden können