Precedente: Linee guida per la scrittura del codice Su: Indice Successivo: Script

Ruby

This topic has missing or partial documentation. Please help us improve it.

See How-To - Write Documentation

Per capire come Rubinius implementa Ruby è necessario comprendere diversi concetti del linguaggio. Lo scopo di questo capitolo è introdurre le funzionalità di Rubinius affrontando concetti del linguaggio Ruby che dovrebbero essere già noti. La documentazione di Rubinius assume che abbiate familiarità con Ruby o con i concetti relativi a macchine virtuali e compilatori.

Il concetto di visibilità (scope) ha un ruolo centrale nella comprensione degli argomenti che seguono. Nella sintassi di Ruby, la visibilità è in genere un concetto derivato. In altre parole, non vi sono elementi della sintassi il cui scopo principale sia delimitare o riferirsi allo scope. Per questo motivo, parlare di visibilità può generare confusione. Ne è un esempio una normale definizione di metodo:

a = 5

def diligent(a)
  puts a * 2
end

In questo caso, il metodo #diligent ci fornisce un nome con cui riferirci all'istruzione puts a * 2, ma definisce anche uno scope lessicale chiuso per la variabile a. Lo scope è chiuso perché l'istruzione a = 5 che precede il metodo non ha nessuna relazione con la variabile a in #diligent.

Spesso si afferma che tutto in Ruby è un oggetto. Non è del tutto vero. Quasi tutto in Ruby è un oggetto, ma alcuni elementi assolutamente essenziali per l'esecuzione di codice Ruby non sono necessariamente oggetti su cui si possono mettere le mani. Quali tra questi "elementi dell'ambiente di esecuzione" siano oggetti in Ruby dipende molto dall'implementazione. Lo scope è uno di questi.

Essenzialmente, lo scope come concetto è un contesto che consente di rispondere a domande quali: Qual è il valore di self qui? Quali variabili locali esistono qui? Quale valore avrà la costante APPLE in questo punto del codice?

I seguenti elementi di Ruby sono trattati con lo scopo di comprendere come vengono implementati da Rubinius e come il concetto di scope sia coinvolto in ciascuno.

  1. Script
  2. Metodi
  3. Costanti
  4. Classi e Moduli
  5. Blocchi e Proc
  6. Variabili Locali
  7. Variabili di Istanza
  8. Variabili di Classe
  9. Variabili Globali
Precedente: Linee guida per la scrittura del codice Su: Indice Successivo: Script

Tweet at @rubinius on Twitter or email community@rubini.us. Please report Rubinius issues to our issue tracker.