English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby 語法

Scriviamo un programma Ruby semplice. Tutti i file Ruby hanno un'estensione di file .rbQuindi, metti il seguente codice sorgente nel file test.rb.

Esempio online

#!/usr/bin/ruby -w
 
puts "Hello, Ruby!";

Supponiamo che nel tuo percorso /usr/bin ci sia già il interprete Ruby disponibile. Ora, prova a eseguire questo programma, come segue:

$ ruby test.rb

Questo produrrà il seguente risultato:

Hello, Ruby!

Hai visto un programma Ruby semplice, ora vediamo alcune concetti base di sintassi Ruby:

Spazi in bianco nel programma Ruby

In Ruby, i caratteri di spazio in bianco, come spazi e tabulazioni, sono generalmente ignorati, a meno che non si trovino all'interno di una stringa, quando non vengono ignorati. Tuttavia, a volte vengono utilizzati per chiarire frasi ambigue. Quando l'opzione -w è abilitata, questa interpretazione produce avvisi.

Esempio:

a + b viene interpretato come a+b (questo è una variabile locale)
a + b viene interpretato come a(+b) (questo è un chiamata a metodo)

Fine della riga nel programma Ruby

Ruby interpreta il punto e virgola e l'invio di riga come fine della frase. Tuttavia, se Ruby incontra un operatore alla fine della riga, come +, -, o barra invertita, essi rappresentano la continuazione di una frase.

Identificatori Ruby

Un identificatore è il nome di una variabile, una costante o un metodo. Gli identificatori in Ruby sono sensibili alle maiuscole e minuscole. Questo significa che Ram e RAM sono due identificatori diversi in Ruby.

Il nome di un identificatore in Ruby può contenere lettere, numeri e caratteri di sottolineatura (_).

Riservati

La tabella seguente elenca i riservati in Ruby. Questi riservati non possono essere utilizzati come nomi di costanti o variabili. Tuttavia, possono essere utilizzati come nomi di metodi.

BEGINdonextthen
ENDelseniltrue
aliaselsifnotundef
andendorunless
beginensureredountil
breakfalserescuewhen
caseforretrywhile
classifreturnwhile
definself__FILE__
defined?modulosuper__LINE__

Here Document in Ruby

Un "Here Document" è un modo per creare stringhe multilinha. Dopo <<, puoi specificare una stringa o un identificatore per terminare la stringa, e tutte le righe successive fino al terminatore sono il valore della stringa.

Se il terminatore è racchiuso tra virgolette, il tipo di stringa a righe è determinato dal tipo di virgoletta. Nota che non ci devono essere spazi tra << e il terminatore.

Ecco un altro esempio:

Esempio online

#!/usr/bin/ruby -w
# -*- coding: utf-8 -*-
 
print <<EOF
    Questo è il primo modo per creare un here document.
    stringa multilinha.
EOF
 
print <<"EOF"; # Come sopra
    Questo è il secondo modo per creare un here document.
    stringa multilinha.
EOF
 
print <<`EOC` # Esegui comando
    echo hi there
    echo lo there
EOC
 
print <<"foo", <<"bar" # Puoi metterle uno sopra l'altra
    Ho detto foo.
foo
    Ho detto bar.
bar

這將產生以下結果:

Questo è il primo modo per creare un here document.
stringa multilinha.
Questo è il secondo modo per creare un here document.
stringa multilinha.
hi there
lo there
Ho detto foo.
Ho detto bar.

Ruby BEGIN istruzione

sintassi

BEGIN {
   code
}

dichiarazione code Viene chiamata prima dell'esecuzione del programma.

Esempio online

#!/usr/bin/ruby
 
puts "這是主 Ruby 程序"
 
BEGIN {
   puts "初始化 Ruby 程序"
}

這將產生以下結果:

初始化 Ruby 程序
這是主 Ruby 程序

Ruby END istruzione

sintassi

END {
   code
}

dichiarazione code Viene chiamata alla fine del programma.

Esempio online

#!/usr/bin/ruby
 
puts "這是主 Ruby 程序"
 
END {
   puts "停止 Ruby 程序"
}
BEGIN {
   puts "初始化 Ruby 程序"
}

這將產生以下結果:

初始化 Ruby 程序
這是主 Ruby 程序
停止 Ruby 程序

Ruby 語法

註釋會對 Ruby 解釋器隱藏一行,或者一行的一部分,或者若干行。您可以在行首使用字符( # ):

# 我是註釋,請忽略我。

或者,註釋可以跟隨語句或表達式的同一行的後面:

name = "Madisetti" # 這也是註釋

您可以註釋多行,如下所示:

# 這是註釋。
# 這也是註釋。
# 這也是註釋。
# 這還是註釋。

下面是另一種形式。這種塊註釋會對解釋器隱藏 =begin/=end 之間的行:

=begin
這是註釋。
這也是註釋。
這也是註釋。
這還是註釋。
=end