Valori predefiniti dei parametri
Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 53 di 88.
A volte vuoi che un metodo abbia un valore predefinito ragionevole quando non viene fornito un argomento. I valori predefiniti dei parametri ti permettono di definire quale valore deve avere un parametro se chi chiama il metodo non lo specifica.
Per impostare un valore predefinito, usa il segno = dopo il nome del parametro:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # Stampa: Hello, Alice!
greet # Stampa: Hello, friend!Quando chiami greet senza un argomento, Ruby usa "friend" come valore predefinito. Quando fornisci un argomento, questo sostituisce il valore predefinito.
Puoi combinare parametri normali e parametri predefiniti, ma quelli con un valore predefinito devono venire dopo quelli senza:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Salida: 25 (5 al cuadrado)
puts power(2, 3) # Salida: 8 (2 al cubo)Questo rende i metodi più flessibili. Chi li chiama può fornire solo le informazioni essenziali, mentre per i dettagli facoltativi vengono usati valori predefiniti ragionevoli.
Sfida
FacileDefinisci un metodo chiamato multiply che accetta due parametri: a e b. Il parametro b dovrebbe avere un valore predefinito di 1. Il metodo dovrebbe restituire il prodotto di a e b.
Leggi due numeri interi dall'input:
- Il primo numero (verrà sempre fornito)
- Il secondo numero (potrebbe essere fornito oppure no)
Se viene fornito un solo input, chiama il metodo passando solo quell'argomento (usando il valore predefinito per b). Se vengono forniti due input, chiama il metodo passando entrambi gli argomenti.
Stampa il risultato della chiamata al metodo.
Il formato dell'input sarà:
- Prima riga: il primo numero
- Seconda riga: un numero oppure la parola
none
Ad esempio, se gli input sono 7 e 3:
21Se gli input sono 5 e none:
5Se gli input sono 12 e 4:
48Provalo tu
# Leggi l'input
a = gets.chomp.to_i
b_input = gets.chomp
# TODO: Definisci il metodo multiply con il parametro b che ha un valore predefinito di 1
# TODO: Chiama il metodo in modo appropriato a seconda che b_input sia "none" o un numero
# Se b_input è "none", chiama multiply passando solo a
# Se b_input è un numero, chiama multiply passando sia a che b
# Stampa il risultato
puts resultQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falso9Metodi
Definire un metodoParametri del metodoValori restituitiRiepilogo - Metodo SigmaRiepilogo - Metodo di validazioneValori predefiniti dei parametriEsercitati da solo: Compilatore Ruby online