Différences entre les versions de « Programmation Ruby/Méthodes »

→‎méthodes de l'instance : +méthodes par defaut, méthodes d'instance par defaut, méthode definie ? publique ?
(On dégrossit une partie)
 
(→‎méthodes de l'instance : +méthodes par defaut, méthodes d'instance par defaut, méthode definie ? publique ?)
=> Bonjour Roger
 
== méthodesMéthodes de l'instance ==
La méthode générique, présente dans toutes les classe, ''instance_methods'' renvoie la liste des méthodes existantes.
Parle.instance_methodes
Parle.instance_methods(false)
=> ["bonjour"]
 
Au contraire on peut obtenir les méthodes qui ne sont pas que des méthodes d'instances :
Parle.methods
=> ["inspect", "private_class_method", "const_missing", "clone", "method", "public_methods",
"public_instance_methods", "instance_variable_defined?", "method_defined?", "superclass", "equal?", "freeze",
"included_modules", "const_get", "methods", "respond_to?", "module_eval", "class_variables", "dup",
"protected_instance_methods", "instance_variables", "public_method_defined?", "__id__", "eql?", "object_id",
"const_set", "id", "singleton_methods", "send", "class_eval", "taint", "frozen?", "instance_variable_get",
"include?", "private_instance_methods", "__send__", "instance_of?", "private_method_defined?", "to_a", "name",
"autoload", "type", "new", "<", "protected_methods", "instance_eval", "<=>", "display", "==", ">", "===",
"instance_method", "instance_variable_set", "kind_of?", "extend", "protected_method_defined?", "const_defined?",
">=", "ancestors", "to_s", "<=", "public_class_method", "allocate", "hash", "class", "instance_methods",
"tainted?", "=~", "private_methods", "class_variable_defined?", "nil?", "untaint", "constants", "is_a?",
"autoload?"]
 
 
== Existance d'une méthode ==
On peut déterminer si une méthode existe ou pas à l'aide des méthodes par défaut :
Parle.method_defined?("bonjour")
=> true
Parle.method_defined?("aurevoir")
=> false
On peut également determiner si elle est publique (accessible depuis l'exterieure de la classe) :
Parle.public_method_defined?("bonjour")
=> true
87

modifications