Types de variables dans ruby

Types de variables dans ruby

Il existe différents types de variables et je ne savais pas comment les utiliser correctement, alors je laisse une note pour moi-même.

table des matières

  1. [Variable locale]
  2. [Variable d'instance]
  3. [Variable de classe]
  4. [Variables globales]

Variables locales

local.rb


def local()
  a = 3
end
p a

# =>Traceback (most recent call last):
local.rb:5:in `<main>': undefined local variable or method `a' for main:Object (NameError)

Un défini par la méthode locale ne peut pas être appelé depuis l'extérieur de la méthode.

Variable d'instance

instance.rb


class Instance
  def set_val(val)
    @val = val
  end

  def put_val
    p @val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.put_val


# =>
"aaa"
nil

Insérez "aaa" dans @val de l'instance test1 en utilisant la méthode set_val. Après cela, dans l'instance test2, put_val est appelé, mais nil est renvoyé. À partir de là, on peut voir que la valeur est conservée pour chaque instance.

instance.rb


class Instance
  def set_val(val)
    @val = val
  end

  def put_val
    p @val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.set_val("bbb")
test2.put_val
# =>
"aaa"
"bbb"

Il est également nécessaire d'utiliser la méthode set_val pour l'instance test2.

Variable de classe

class.rb


class Instance
  def set_val(val)
    @@val = val
  end

  def put_val
    p @@val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.put_val
# =>
"aaa"
"aaa"

Contrairement à la variable d'instance précédente, la valeur est partagée par toutes les instances de la même classe.

class.rb


class Instance
  def set_val(val)
    @@val = val
  end

  def put_val
    p @@val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.set_val("bbb")
test2.put_val

test1.put_val

# => 
"aaa"
"bbb"
"bbb"

Variables globales

global.rb


class Global
  def set_val(val)
    $val = val
  end
end

test1 = Global.new
test1.set_val("aaa")

p $val

# => 
"aaa"

Recommended Posts

Types de variables dans ruby
variable constante rubis
Type de graphique Rubis
Lourd en rubis! ??
À propos de var utilisé en Java (type de variable locale)
Détermination de type en Java
Popcount rapide en Ruby
ABC177-Résoudre E avec Ruby
Valider les jetons JWT dans Ruby
Écrire l'héritage de classe dans Ruby
Essayez le type fonctionnel en Java! ①
Entiers qui sont unifiés en entiers dans Ruby 2.4
Multiplication dans un tableau Ruby
À propos des expressions régulières dans Ruby
NCk mod p dans Ruby
variable
Comment itérer indéfiniment en Ruby
Variables Ruby on Rails, résumé constant
Obtenez un affichage délimité à 3 chiffres en Ruby
J'ai essayé d'écrire du code comme une déclaration de type en Ruby
Encodage lors de l'accès à Windows + Ruby
Ruby on Rails compatible japonais-anglais i18n
Implémenter le client gRPC dans Ruby
Ecrire des clés et des valeurs dans Ruby
[Super Introduction] À propos des symboles dans Ruby
Hanachan en Ruby (manipulation non destructive de tableaux)
Qu'est-ce qu'une variable de type référence?
Informations sur la version openssl dans ruby OPENSSL_VERSION
Méthodes Ruby souvent utilisées dans Rails
Segfo Ruby en 2 lignes
[Java] Afficher la chaîne de bits stockée dans la variable de type d'octet sur la console
J'ai essayé un problème de calendrier avec Ruby
Implémenter le poker petit à petit dans Ruby Part 2
Concernant la comparaison d'équivalence de type de chaîne en Java
Créer des données binaires de longueur variable en Java
Implémenter le poker petit à petit dans Ruby Part 1
[Explication facile à comprendre! ] Conversion de type de type de référence en Java
Informations de répertoire de DEFAULT_CERT_FILE dans Mac ruby 2.0.0