[RUBY] À propos de la plage et de la portée dans lesquelles les variables Day16 peuvent être utilisées

Résumé des variables de passage

ReviewApp


def post_review
  post = {}
  puts "Veuillez saisir un genre:"
  post[:genre] = gets.chomp
  puts "Veuillez saisir un titre:"
  post[:title] = gets.chomp
  puts "Veuillez entrer vos pensées:"
  post[:review] = gets.chomp
  line = "---------------------------"

  #Dessiner un avis
  puts "Genre: #{post[:genre]}\n#{line}"
  puts "Titre: #{post[:title]}\n#{line}"
  puts "Impressions:\n#{post[:review]}\n#{line}"

  #Ajouter à l'objet de tableau
  posts << post
end

↑ Dans ce cas, posts n'est pas défini dans la méthode post_review, donc c'est NG. En principe, seules les variables définies dans la méthode peuvent être utilisées. Pour rendre cela disponible, nous utilisons quelque chose appelé un argument.

ReviewApp


def post_review (a_posts)
  post = {}
  puts "Veuillez saisir un genre:"
  post[:genre] = gets.chomp
  puts "Veuillez saisir un titre:"
  post[:title] = gets.chomp
  puts "Veuillez entrer vos pensées:"
  post[:review] = gets.chomp
  line = "---------------------------"

  #Dessiner un avis
  puts "Genre: #{post[:genre]}\n#{line}"
  puts "Titre: #{post[:title]}\n#{line}"
  puts "Impressions:\n#{post[:review]}\n#{line}"

  #Ajouter à l'objet de tableau
  a_posts << post

  # a_renvoie les messages à l'appelant de la méthode
  return a_posts
end

#Génération de publications d'objets de tableau
posts = []

while true do
  #Afficher le menu
  puts "Nombre d'appréciations: 0"
  puts "[0]J'écris une critique"
  puts "[1]Lire les avis"
  puts "[2]Quittez l'appli"
  input = gets.to_i

  if input == 0 then
    posts = post_review(posts)  # post_Méthode d'examen des appels
  elsif input == 1 then
    read_reviews                # read_Appelez la méthode des avis
  elsif input == 2 then
    end_program                 # end_Appelez la méthode du programme
  else
    exception                   #Appelez la méthode d'exception
  end
end

L'appelant doit attribuer cette valeur de retour aux messages variables. J'ai pu ajouter des publications d'informations de révision aux publications d'objets de tableau qui gèrent les critiques à l'aide d'arguments.

① Appelez la méthode post_review avec posts = post_review (posts) avec posts comme argument

② Dans la méthode post_review, copiez les publications dans une variable appelée a_posts.

③ Ajoutez un hachage à a_posts dans la méthode post_review et retournez a_posts

④ Remplacez les a_posts retournés par les posts par posts = post_review (posts)

<Règles d'utilisation des arguments>

  1. Écrivez à la fois "la partie qui définit la méthode" et "la partie qui appelle la méthode"
  2. Les noms «argument factice» et «argument réel» ne doivent pas nécessairement correspondre

Exécuter une méthode à l'aide d'un argument


def multi(number)         #Dans la définition de la méthode, le nombre est utilisé comme argument formel.
  puts number * number
end

puts "Veuillez saisir un nombre"
value = gets.to_i

multi(value)             #Lorsque vous utilisez réellement la méthode multi, la valeur est placée à la place du nombre précédent.

Recommended Posts

À propos de la plage et de la portée dans lesquelles les variables Day16 peuvent être utilisées
Plage où les variables peuvent être utilisées avec ruby [Scope]
Portée de la variable Java (plage où les variables peuvent être vues)
À propos du cas où ("b" .. "aa") ne pourrait pas être utilisé dans Ruby Range
[Spring Data JPA] La condition And peut-elle être utilisée dans la méthode de suppression implémentée automatiquement?
[Question] Nullif peut-il être utilisé dans la fonction de comptage de JPQL?
Remarques sur la portée
À peu près la même et la même valeur
À propos des variables d'instance et attr_ *
Créer un environnement où pip3 peut être utilisé avec CentOS7 + Python3
Pg_resetwal peut être utilisé pour démarrer le conteneur Docker PostgreSQL lorsque WAL est cassé et ne peut pas être démarré.
À propos de la langue à apprendre à partir de maintenant
Implémentation de machine à sous simple qui peut être utilisée avec copie
Où puis-je trouver des informations sur les versions de Java après février 2019? À propos du problème
[Java] Les variables déclarées à l'intérieur de l'instruction `for` ne peuvent pas être utilisées en dehors du bloc` instruction for`
Outils d'analyse des performances et de diagnostic des pannes utilisables avec OpenJDK