Ruby Languagemetodi


introduzione

Le funzioni in Ruby forniscono un codice organizzato e riutilizzabile per preformare un insieme di azioni. Le funzioni semplificano il processo di codifica, impediscono la logica ridondante e rendono il codice più facile da seguire. Questo argomento descrive la dichiarazione e l'utilizzo di funzioni, argomenti, parametri, dichiarazioni di rendimento e ambito in Ruby.

Osservazioni

Un metodo è un blocco di codice denominato, associato a uno o più oggetti e generalmente identificato da un elenco di parametri oltre al nome.

def hello(name)
  "Hello, #{name}"
end

Un richiamo di metodo specifica il nome del metodo, l'oggetto su cui deve essere richiamato (talvolta chiamato il ricevente) e zero o più valori dell'argomento che sono assegnati ai parametri del metodo named. Il valore dell'ultima espressione valutata nel metodo diventa il valore dell'espressione di chiamata del metodo.

hello("World")
# => "Hello, World"

Quando il ricevitore non è esplicito, è un self .

self
# => main

self.hello("World")
# => "Hello, World"

Come spiegato nel libro Ruby Programming Language , molte lingue distinguono tra funzioni, che non hanno oggetti associati e metodi, che sono invocati su un oggetto ricevente. Poiché Ruby è un linguaggio puramente orientato agli oggetti, tutti i metodi sono metodi veri e sono associati ad almeno un oggetto.

Panoramica dei parametri del metodo

genere Metodo Signature Esempio di chiamata assegnazioni
R equo def fn(a,b,c) fn(2,3,5) a=2, b=3, c=5
V ariadic def fn(*rest) fn(2,3,5) rest=[2, 3, 5]
D efault def fn(a=0,b=1) fn(2,3) a=2, b=3
K eyword def fn(a:0,b:1) fn(a:2,b:3) a=2, b=3

Questi tipi di argomenti possono essere combinati praticamente in ogni modo possibile per creare funzioni variadiche. Il numero minimo di argomenti per la funzione sarà uguale alla quantità di argomenti richiesti nella firma. Gli argomenti extra verranno assegnati prima ai parametri predefiniti, quindi al parametro *rest .

genere Metodo Signature Esempio di chiamata assegnazioni
R, S, V, R def fn(a,b=1,*mid,z) fn(2,97) a=2, b=1, mid=[], z=97
fn(2,3,97) a=2, b=3, mid=[], z=97
fn(2,3,5,97) a=2, b=3, mid=[5], z=97
fn(2,3,5,7,97) a=2, b=3, mid=[5,7], z=97
R, K, K def fn(a,g:6,h:7) fn(2) a=2, g=6, h=7
fn(2,h:19) a=2, g=6, h=19
fn(2,g:17,h:19) a=2, g=17, h=19
VK def fn(**ks) fn(a:2,g:17,h:19) ks={a:2, g:17, h:19}
fn(four:4,five:5) ks={four:4, five:5}

metodi Esempi correlati