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 di ripiego ragionevole quando non viene fornito un argomento. I valori predefiniti dei parametri ti consentono di definire quale valore debba 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 con parametri predefiniti. I parametri con valori predefiniti di solito vengono dopo quelli senza, e un parametro normale non può trovarsi tra due parametri con valori predefiniti:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Stampa: 25 (5 al quadrato)
puts power(2, 3) # Stampa: 8 (2 al cubo)Questo rende i metodi più flessibili. Chi li chiama può fornire solo le informazioni essenziali, mentre i dettagli facoltativi ricorrono a valori predefiniti ragionevoli.
Sfida
FacileDefinisci un metodo chiamato multiply che accetta due parametri: a e b. Il parametro b deve avere un valore predefinito pari a 1. Il metodo deve restituire il prodotto di a e b.
Leggi due numeri interi dall'input:
- Il primo numero (sarà sempre fornito)
- Il secondo numero (potrebbe essere fornito oppure no)
Se viene fornito un solo input, chiama il metodo con solo quell'argomento (usando il valore predefinito per b). Se vengono forniti due input, chiama il metodo con 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 nel 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 sia 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