class Fruits 
  def initialize(name, color, variety) #Argument formel (premier argument,Deuxième argument,Troisième argument)#La méthode initialize ne nécessite pas de nouvel appel.
    @name = name #Définir des variables d'instance
    @color = color
    @variety = variety
  end
  def  name #Getter(Getterメソッド名は、クラス外で出力する際に用いますので、重要です。)
    @name #Obtenir la valeur de l'instance
  end
  def color #Aussi getter
    @color 
  end
  def variety
    @variety
  end
end
class InfoFruits #J'ai besoin d'un appel.
  def initialize(fruits) #Définition des variables d'instance
    @fruits = fruits
  end
  def fruits #Getter
    @fruits #Obtenir la valeur d'une variable d'instance#Un tableau de trois arguments réels.
  end
  def info_fruits
    self.fruits.each do |fruit| #Chaque méthode itère autant de fois qu'il y a d'éléments dans le tableau.
    #self.fruits est un tableau de valeurs d'instance et de trois arguments réels.
      puts "#{fruit.name}Est#{fruit.color}est.品種Est#{fruit.variety}est." #ゲッターで取得しました値の出力の際Est**Nom de l'instance.Nom de la méthode Getter**Je vais le décrire comme.
    end
  end
end
array = [{info:{info_fruit_name: "pomme", info_fruit_color: "rouge"}}, #Le tableau contient un double hachage.
 {info:{info_fruit_name: "banane", info_fruit_color: "Jaune"}},
 {info:{info_fruit_name: "Grain de raisin", info_fruit_color: "violet"}}]
fruits = []
array.each do |double_hash| #Chaque méthode itère autant de fois qu'il y a d'éléments dans le tableau.
  fruit_name = double_hash[:info][:info_fruit_name] #Dans le cas d'un double hachage, vous pouvez obtenir la valeur souhaitée en sélectionnant deux clés.
  fruit_color = double_hash[:info][:info_fruit_color]
  puts "#{fruit_name}De quel type de produit s'agit-il?"
  double_hash[:info][:info_fruit_variety] = gets.chomp #En spécifiant une nouvelle clé dans le hachage, il est possible d'ajouter une nouvelle valeur.
  fruit_variety = double_hash[:info][:info_fruit_variety]
    if fruit_variety == "Shine Muscat" #Branche conditionnelle
      fruit_color = "vert"
    end
  fruits << Fruits.new(fruit_name, fruit_color, fruit_variety) #Passez l'argument réel à la classe Fruits, créez une instance, et en même temps, la méthode initialize le traite pour définir la variable d'instance, et le getter obtient sa valeur.
                      #Faites correspondre le nombre d'arguments formels et réels.#En obtenant la valeur, il est possible de sortir en dehors de la portée de la classe. Lors de la sortie**Nom de l'instance.Nom de la méthode Getter**Je vais le décrire comme.
end
info_fruit = InfoFruits.new(fruits) #Passez le tableau fruits avec trois arguments réels à la classe InfoFruits, créez une instance, la méthode initialize la traite, définit la variable d'instance et obtient sa valeur par le getter.
info_fruit.info_fruits #info_Un appel à la méthode d'instance fruits.
#Résultat de sortie
De quel genre de pomme s'agit-il?
Fuji
Quelle est la variété de banane?
Cavendish géant
De quel type de raisin s'agit-il?
Pic géant
La pomme est rouge. La variété est Fuji.
Les bananes sont jaunes. La variété est Giant Cavendish.
Les raisins sont violets. La variété est Kyoho.
#Résultat de sortie
De quel genre de pomme s'agit-il?
Fuji
Quelle est la variété de banane?
Cavendish géant
De quel type de raisin s'agit-il?
Shine Muscat
La pomme est rouge. La variété est Fuji.
Les bananes sont jaunes. La variété est Giant Cavendish.
Les raisins sont verts. La variété est Shine Muscat.
Nous vous serions reconnaissants de bien vouloir signaler toute erreur ou manque de reconnaissance.
Recommended Posts