Le deal à ne pas rater :
Jeux, jouets et Lego : le deuxième à -50% (large sélection)
Voir le deal

Aller en bas
Vico2a
Vico2a
Membre

Nombre de messages : 22
Age : 33
Localisation : Corse du Sud
Distinction : aucune
Date d'inscription : 25/06/2015

Résolu Aide pour scripter

Dim 13 Sep 2015 - 18:47
Bonjour a tous et a toutes,
Depuis quelques temps, j'apprends a scripter, seulement, les tutoriels que je suis sont en anglais, et je n'arrive pas a comprendre ce que fait le mot clé "alias". Si un quelconque scripteur pourrait me l'expliquer, il serait le bienvenue !
Bien a vous
Vic'


Dernière édition par Vico2a le Jeu 17 Sep 2015 - 7:36, édité 1 fois
jbdfjojo
jbdfjojo
Membre

Nombre de messages : 383
Age : 35
Localisation : Toulon ( 83 var )
Distinction : aucune
Date d'inscription : 19/04/2015
http://jbdfjojo.esy.es/index.php

Résolu Re: Aide pour scripter

Dim 13 Sep 2015 - 23:46
la méthode alias sinifi que tu fait une copie de ta méthode

ex : alias test(copie) start(original)
nom_d_une_def()
end
Vico2a
Vico2a
Membre

Nombre de messages : 22
Age : 33
Localisation : Corse du Sud
Distinction : aucune
Date d'inscription : 25/06/2015

Résolu Re: Aide pour scripter

Mar 15 Sep 2015 - 18:28
Et donc, la copie est faite ou ? Et quelle est utilité de ce mot clé ?
Hinola
Hinola
Modérateur

Nombre de messages : 969
Age : 30
Distinction : Gagnant invaincu à ce jour de tous les concours de mapping de ce forum fait par Coco'
[Coco' Smile]
Grande figure du Mapping Show .
Grand admirateur de notre mascotte Vehyxine
STI Haruhiste like me [Hamu' Wink]
et fier de l'être ! [bibi ^^]
Un fier Homme du désert sans foi ni loi è_é [:3]
Date d'inscription : 21/05/2009

Résolu Re: Aide pour scripter

Mer 16 Sep 2015 - 18:29
Hey !

j'arrive avec un exemple (je viens juste d'apprendre les alias)
Normalement, c'est comme ça que ça marche.

Ce qui suit s'appelle le monkeyPatch.
C'est pour compléter une méthode existante sans la modifier.
Imaginons tu a une classe à la quelle tu ne dois pas toucher avec une méthode :

Code:

class DontTouch

  def methode
    instruction 1
    instruction 2
  end
 
end

à cette méthode tu veux ajouter une nouvelle instruction :
instruction 3
Tu crée donc un autre script avec une classe DontTouch (qui complétera la première)
deux choix :
Tu écrase l'ancienne méthode

Code:

class DontTouch

  def methode
    instruction 1
    instruction 2
    instruction 3
  end
 
end

Ou tu crée un alias de la méthode de base, que tu utilisera dans une nouvelle méthode qui portera son nom :

Code:

class DontTouch
 
  # methode devient oldmethode
  alias_method :oldmethode, :methode

  def methode
    # on utilise l'ancienne méthode via son nouveau nom
    oldmethode
    instruction 3
  end
 
end

Ainsi, en appelant methode de la class DontTouch, les 3 instructions seront effectuées.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: Aide pour scripter

Mer 16 Sep 2015 - 18:30
imagine tu as une def :
Code:

def test
  blabla
end

tu veut ajouter un truc dedans sans tout changer, du style :

Code:
def test
  blabla
  blabla2
end

le alias te permet de faire ça depuis un autre script explication :

ce code :

Code:
def test
  blabla
end
alias test_nouveaux test

est équivalente a :
Code:
def test
  blabla
end

def test_nouveaux
  blabla #<= même contenue
end

en gros tu fait une copie de ta def avec un nouveaux nom

quand tu creer 2 def de même nom dans une classe celle qui ce trouve la plus bas (au niveaux exécution) écrase l'autre

imagine donc que ta def test est définie quelque part.
tu en fait une copie et tu réecris l'ancienne def :

Code:
alias test_nouveaux test
def test
  test_nouveaux
  blabla2
end

on a alors une chose équivalente a :

Code:
def test
  blabla
  blabla2
end

bien sur il y a des cas ou cette technique n'est pas suffisante (genre si tu doit insérer du code dans le blabla ^^), mais en tout cas voici l'idée Wink

EDIT : moins rapide :P
Vico2a
Vico2a
Membre

Nombre de messages : 22
Age : 33
Localisation : Corse du Sud
Distinction : aucune
Date d'inscription : 25/06/2015

Résolu Re: Aide pour scripter

Jeu 17 Sep 2015 - 7:34
J'ai tout compris (enfin je crois) un grand merci a vous ! Very Happy
Vic'
Contenu sponsorisé

Résolu Re: Aide pour scripter

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum