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

方法 Ruby

I metodi Ruby sono simili ai funzioni in altri linguaggi di programmazione. I metodi Ruby servono a incollare uno o più statement ripetuti in un singolo unità.

Il nome del metodo dovrebbe iniziare con una lettera minuscola. Se si inizia con una lettera maiuscola, Ruby potrebbe considerarlo come una costante, causando una解析 chiamata non corretta.

Il metodo dovrebbe essere definito prima della chiamata, altrimenti Ruby genererà un'eccezione di chiamata del metodo non definito.

语法

def method_name([(arg [= default]...[, *arg[, &expr]])])
   expr..
fine

Quindi, puoi definire un metodo semplice, come mostrato di seguito:

def method_name 
   expr..
fine

Puoi definire un metodo che accetta parametri, come mostrato di seguito:

def method_name(var1, var2)
   expr..
fine

Puoi assegnare valori di default ai parametri, che verranno utilizzati se non vengono forniti i parametri necessari durante la chiamata del metodo:

def method_name(var1=value1, var2=value2)
   expr..
fine

Quando si chiama un metodo, è sufficiente utilizzare il nome del metodo, come mostrato di seguito:

method_name

Ma quando si chiama un metodo con parametri, è necessario includere i parametri nella scrittura del nome del metodo, ad esempio:

method_name 25, 30

Uno dei principali svantaggi dell'uso di metodi con parametri è che è necessario ricordare il numero di parametri quando si chiama il metodo. Ad esempio, se si passa due parametri a un metodo che accetta tre parametri, Ruby mostrerà un errore.

示例在线

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
def test(a1='Ruby', a2='Perl')
   puts 'Linguaggio di programmazione: #{a1}'
   puts 'Linguaggio di programmazione: #{a2}'
fine
test 'C', 'C++'
test

L'esempio di output della esecuzione è il seguente:

Linguaggio di programmazione: C
Linguaggio di programmazione: C++
Linguaggio di programmazione: Ruby
Linguaggio di programmazione: Perl

Restituire valori dal metodo

In Ruby, ogni metodo restituisce un valore predefinito. Il valore restituito è il valore dell'ultima statement. Ad esempio:

示例在线

def test
   i = 100
   j = 10
   k = 0
fine

Quando si chiama questo metodo, restituirà l'ultima variabile dichiarata k.

Ruby return 语句

In Ruby return La statement è utilizzata per restituire uno o più valori da un metodo Ruby.

语法

return [expr, ' ', expr...]

Se vengono fornite più di due espressioni, l'array contenente questi valori sarà il valore di ritorno. Se non vengono fornite espressioni, il valore di ritorno sarà nil.

示例在线

return
 
o
 
return 12
 
o
 
return 1,2,3

Guarda l'esempio seguente:

示例在线

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
def test
   i = 100
   j = 200
   k = 300
return i, j, k
fine
var = test
puts var

L'esempio di output della esecuzione è il seguente:

100
200
300

Parametri di numero variabile

Supponiamo di aver definito un metodo con due parametri. Quando chiami questo metodo, devi anche passare due parametri.

Ruby ti permette di dichiarare metodi con un numero variabile di parametri. Vediamo un esempio:

示例在线

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
def sample(*test)
   puts "Il numero di parametri è #{test.length}"
   for i in 0...test.length
      puts "Il valore del parametro è #{test[i]}"
   fine
fine
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

In questo pezzo di codice, hai già definito un metodo sample che accetta un parametro test. Tuttavia, questo parametro è una variabile parametrica. Ciò significa che i parametri possono avere un numero diverso di variabili. L'esempio di output della esecuzione è il seguente:

Il numero di parametri è 3
Il valore del parametro è Zara
Il valore del parametro è 6
Il valore del parametro è F
Il numero di parametri è 4
Il valore del parametro è Mac
Il valore del parametro è 36
Il valore del parametro è M
Il valore del parametro è MCA

metodo di classe

Quando il metodo è definito all'esterno della classe, il suo segno di visibilità predefinito è privateD'altra parte, se il metodo è definito all'interno della classe, è automaticamente etichettato come public.

e le proprietà di visibilità predefinite dei metodi. private è possibile indicare la visibilità predefinita dei metodi tramite il modulo (Module). public o private Cambiamento.

Quando vuoi accedere ai metodi di una classe, devi prima creare un'istanza della classe. Poi, utilizzando l'oggetto, puoi accedere a qualsiasi membro della classe.

Ruby offre un modo per accedere ai metodi senza dover creare un'istanza di una classe. Vediamo come dichiarare e accedere ai metodi di classe:

class Accounts
   def reading_charge
   fine
   def Accounts.return_date
   fine
fine

Abbiamo già capito come viene definita la funzione return_date. È definita seguendo il nome della classe con un punto, seguito dal nome della funzione. Puoi accedere direttamente ai metodi di classe, come mostrato di seguito:

Accounts.return_date

Per accedere a questo metodo, non è necessario creare un oggetto Accounts.

Ruby alias 语句

Questa frase viene utilizzata per assegnare alias a metodi o variabili globali. Gli alias non possono essere definiti all'interno del corpo del metodo. Anche se il metodo viene riscritto, l'alias del metodo mantiene la definizione attuale del metodo.

为编号的全局变量($1, $2,...)起别名是被禁止的。重写内置的全局变量可能会导致严重的问题。

语法

alias 方法名 方法名
alias 变量全局 全局变量

示例在线

alias foo bar
alias $MATCH $&

在这里,我们已经为 bar 定义了别名为 foo,为 $& 定义了别名为 $MATCH。

Ruby undef 语句

此语句用于取消方法定义。undef 不能出现在方法主体内。

使用通过 undefalias,类的接口可以从父类独立修改,但请注意,在自身内部方法调用时,它可能会破坏程序。

undef 方法名

示例在线

以下示例取消名为 bar定义方法:

undef bar