- Consultant Java, XML
|
SIRET : 44163934100037 Port. : (+33) 06 83 86 59 68 Tél : (+33) 01 64 79 05 71 FAX : (+33) 01 64 79 05 71 |
|
| CV Références Ouvrages Formations Disponibilités Tarifs | ||
Ouvrages : Architecture : Unix/Linux : UML : SOAP : Fiches de développement : Articles / Developpez.com :
|
Découverte de Ruby - Partie IRuby est un langage interprété et objet. Ruby est sensible à la casse pour les mot-clés. Contrairement à Java, Ruby ne différencie pas objet et valeur primitive (entier...) et tout est objet. Par exemple pour obtenir la valeur absolue de -1 : Pour exécuter votre code, récupérer l'interpreteur Ruby. Créer un ficher test1.rb (noter l'extension) et passer le à l'interpreteur simplement par "ruby test1.rb". Résultat : Tous les objets ont un identifiant obtenu par object_id et appartiennent à une classe. a = 10 FonctionsLe mot-clé def va servir à définir une fonction ruby. Des paramètres peuvent être passés. Inutile de typer vos arguments ou variables, Ruby déduit tout seul les bons types. #Tests de fonction def aurevoir(qui) #Appels La séquence #{Expr} sert à introduire une valeur dans une chaîne façon PHP. Le mot-clé return pour obtenir la valeur d'une fonction. #Pour un commentaire (no comment). A noter que les ";" en fin d'expression ne sont pas obligatoires (pour les nostalgiques), pareil pour les parenthèses lors de l'appel d'une fonction. Dans ce dernier cas elles sont conseillées (évolution du langage dans ce sens). Enfin, grand classique "\n" pour forcer un retour charriot. Pour la sortie, puts peut aussi être remplaçé par printf avec un fonctionnement similaire à ce que l'on trouve en C. (passage s'arguments par %Type). printf( "Very good job %s\n", "M." ) TableauxLes tableaux n'ont pas besoin d'être alloués, les tailles sont calculées dynamiquement. On a les tableaux indicés et les tableaux associatifs (type table de hachage). #Tests des tableaux monTab = [ "aa", "bb", 2008 ] #Tableaux de chaîne #Tableaux associatifs A noter qu'une tableau vide s'obtient par [] ou {}. Autre point concernant les chaînes entre simple quote ou double quotes, pareil au même. La propriété length est disponible pour connaître la taille d'un tableau. Contrôle de fluxLes tests sont réalisés de manière classique par rapport à Java/C. Le mot-clé elsif est la contraction de else if. a = 8 if a == 8 Pour les boucles, l'instruction while est à dispo : while a > 0 if a > 5 Expressions régulièresLe format des expressions régulières est courant, il est défini entre /. La fonction sub sur une chaîne sert à faire une substitution, alors que gsub effectuera toutes les substitutions. L'opérateur =~ sert à verifier que le pattern /MonPattern/ à droite correspond à l'expression de gauche. date= "070508" #substitution puts date.sub(/\d{2}/,"JJ") Blocs d'instructionsUn bloc d'instructions est une expression entre { }, elle peut être passée à une fonction et invoqué par l'instruction yield. On se rapproche d'un langage fonctionnel car ce bloc d'instructions peut contenir des paramètres. Commençons par un cas simple : def rencontre rencontre { Le bloc d'instruction ne peut être être passé comme un argument, c'est une sorte d'argument toujours accessible par yield (c'est une fonction qui représente ce bloc). Dans l'exemple ci-dessous on l'utilise avec un argument a. def rencontre(a) rencontre(10) { yield peut recevoir des arguments lui-même qui seront transmis au bloc d'instructions. Le bloc d'instructions déclare ces arguments entre | avec une virgule de séparation. def rencontreBis(a) rencontreBis(7) { Un autre exemple si ce n'est pas clair : def date(j,m,a) date(7,5,2008) { Où cela peut être utile ? Par exemple pour parcourir un tableau avec la fonction each. tab = %w{ bonjour la vie est belle } Cette fonction utilise un bloc d'instructions auquelle elle passe l'élément du tableau au fur et à mesure. On parcourt ainsi la collection. Autre exemple de fonction utilisant yield, times 10.times { puts "ok" } >> Suite du tutorial |
Tips Java : - Icônes multiples en swing Tips ASP : - Accès BD avec MySql Tests d'application : Tutoriaux : Autre : |