J'espère que vous trouverez des informations utiles sur les variables fréquemment utilisées et leurs plages utilisables. De plus, comme j'étudie depuis environ deux mois et demi, il peut y avoir des erreurs. Cliquez ici pour le contenu de l'article
Au fait, voici la version de ruby que vous apprenez
ruby 2.6.5
Considérez une variable comme une «boîte pour stocker des valeurs arbitraires». Par exemple, c'est une image de mettre le mot «pomme» dans la case (variable) étiquetée «pomme». Ceci est exprimé par "** attribuer ** le caractère" pomme "à la variable pomme". Utilisez également "=" lors de la substitution. Soyez prudent car la signification est différente de l'arithmétique "=".
apple = "pomme"
En créant (définissant) une variable de cette manière, vous pouvez utiliser la valeur du contenu simplement en appelant cette variable.
puts apple
=>pomme
La raison en est que l'écriture du même code à plusieurs reprises est une tâche très longue, donc si vous définissez les variables à l'avance, vous pouvez gagner du temps et corriger les valeurs même s'il y a des corrections. Sera. Par exemple, si vous écrivez un programme qui calcule l'aire de plusieurs cercles, l'aire du cercle peut être calculée par "rapport rayon x rayon x circonférence". Si le rapport de circonférence est de 3,14,
#Formule pour l'aire d'un cercle de rayon 3
3 * 3 * 3.14
#Formule pour l'aire d'un cercle de rayon 5
5 * 5 * 3.14
Il peut être calculé par cette formule. Cependant, si "Je veux que vous corrigiez le rapport de circonférence à 3" au moment où vous avez écrit le programme dans une certaine mesure, vous devez corriger tous les rapports de circonférence dans la description ci-dessus. Définissons donc une variable pour le rapport de circonférence.
#Définissez le rapport de circonférence avec la variable pi
pi = 3.14
#Formule pour l'aire d'un cercle de rayon 3
3 * 3 * pi
#Formule pour l'aire d'un cercle de rayon 5
5 * 5 * pi
En faisant ce qui précède, si le rapport de circonférence est corrigé, si la valeur de la variable est corrigée, d'autres expressions seront également corrigées. Donc, pour les valeurs qui sont utilisées à plusieurs reprises, faisons quelque chose comme "assigner à une variable".
Il existe 5 types de variables ruby, chacune avec une plage d'utilisation différente. Les types de variables sont classés dans l'un des suivants par la première lettre.
Type de variable | La description | Plage utilisable (portée) |
---|---|---|
Variables globales | $〇〇 | Peut être référencé et mis à jour de n'importe où dans le script |
Variable de classe | @@〇〇 | Peut être référencé n'importe où dans la classe |
Variable d'instance | @〇〇 | Peut être référencé n'importe où dans l'instance |
Variables locales | 〇〇 | Ne peut être référencé que dans la méthode définie |
Pseudo variable | soi, nul, etc. |
Ces variables ont le concept de portée, qui définit la plage dans laquelle elles peuvent être utilisées. (Sauf pour les pseudo variables) Si vous ne connaissez pas cette plage utilisable, des erreurs se produiront fréquemment, soyez donc prudent.
Les variables globales définies avec un $ au début peuvent être utilisées quelle que soit la portée. La plus large portée. (Soyez donc prudent lorsque vous l'utilisez)
$hoge = "hoge"
def huga
puts $hoge => "hoge"
end
huga #=> "hoge"
C'est une variable partagée par toute la classe, et est définie comme une variable de classe si le nom de la variable commence par @@, comme @@ 〇〇.
class User
@@name = "tanaka"
def name
puts @@name
end
end
user_first = User.new
user_first.name #=> "tanaka"
À première vue, c'est pratique, mais en raison de la large plage, il peut être écrasé involontairement et la valeur peut changer.
class User
def initialize(name)
@@name = name
end
def name
puts @@name
end
end
user_first = User.new("suzuki")
user_second = User.new("sato")
user_first.name #=> "sato"
user_secont.name #=> "sato"
Les variables d'instance sont des variables qui ont une valeur pour chaque instance créée à partir de la classe. La portée est dans l'instance. Écrivons-le de la même manière que l'exemple de variable de classe ci-dessus.
class User
def initialize(name)
@name = name
end
def name
puts @name
end
end
user_first = User.new("suzuki")
user_second = User.new("sato")
user_first.name #=> "suzuki"
user_second.name #=> "sato"
Contrairement à avant, la valeur n'est pas écrasée. Les variables d'instance sont très souvent utilisées lors de la création d'applications avec Ruby on Rails, alors assurez-vous de les comprendre. Pour le flux de processus de l'instance, reportez-vous à cet article car il est facile à comprendre.
[Ruby] J'ai de nouveau découvert les classes et les instances
Les variables locales sont les variables de portée la plus étroite et ne peuvent être utilisées que dans les méthodes définies. Comme dans l'exemple précédent, changeons la variable d'instance en variable locale.
class User
def initialize(name)
local_name = name
end
def name
puts local_name
end
end
user1 = User.new("suzuki")
user2 = User.new("sato")
user1.name
user2.name
#L'erreur suivante se produit
=> undefined local variable or method `local_name' for #<User:0x00007fd91d104f48> (NameError)
Si vous l'exécutez en tant que variable locale, l'erreur ci-dessus se produira. C'est parce que j'ai essayé d'appeler une variable en dehors de la portée, donc j'obtiens l'erreur "Il n'y a pas de telle méthode". Comme vous pouvez le voir, chaque variable a une portée, soyez donc prudent lorsque vous l'utilisez.
C'est une variable spéciale qui est différente d'une variable normale.
** self ** L'objet de la méthode actuelle elle-même ** nil ** La seule instance de la classe NilClass? ** true ** La seule instance de la classe TrueClass ?. Vraie valeur représentative ** false ** FalseClass? La seule instance de la classe. Représente faux ** \ __FILE __ ** Représente le nom du fichier source actuel ** \ __LINE __ ** Représente le numéro de ligne dans le fichier source actuel
Si vous essayez de définir les mêmes variables que ces noms de variables, vous obtiendrez l'erreur suivante:
SyntaxError ((irb):1: Can't change the value of self)
self = hoge
^~~~
Puisqu'il ne peut pas changer la valeur de soi, c'est une erreur que «la valeur de soi ne peut pas être changée». Je comprends que c'est une variable qui a été définie à l'origine et qui ne peut pas être modifiée. (J'étudie ici)
Types et étendues de variables, etc ... Si vous ne comprenez pas les bases, des erreurs se produiront fréquemment lors de la création d'applications. Les bases sont vraiment importantes. Je continuerai d'étudier dur et d'approfondir ma compréhension.
[Ruby] J'ai de nouveau découvert les classes et les instances [Manuel de référence de Ruby 2.7.0] (https://docs.ruby-lang.org/ja/latest/doc/spec=2fvariables.html#instance) [Rubis inversé] (https://sites.google.com/site/gyakuhikiruby/home/bian-shutosukopu) Connaissez les types de variables! Comment utiliser la portée variable dans Ruby
Recommended Posts