Il “||”, da solo, equivalente ad “or”. “||” + “=” sono un assegnazione
condizionale e funzionano cos: quel codice ti restituisce
session[:counter] se session[:counter] definito. Oppure, setta
session[:counter] a 0 e restituisce 0.
Sperando di non aver detto boiate e sempre pronto a inchinarmi a chi ne
sa di pi
Il 21 settembre 2011 17:12, fruit fruitjemm [email protected] ha
scritto:
altrimenti se usato cosi:
variabile ||= valore verifica che la variabile non nil
(sostanzialmente fa un variabile.nil?), se lo setta la variabile a
valore…
Ciao,
a OPERATORE= b
solo una forma breve di
a = a OPERATORE b
Ad esempio,
a += 2
vuol dire:
a = a + 2
a -= 2
si legge:
a = a - 2
e cos via. Quindi,
a ||= b
significa:
a = a || b
Quindi no, .nil? non viene chiamato, viene piuttosto valutato il
valore di verit di a; se a valeva false, dopo l’operazione vale b,
altrimenti continua a valere a, come se fosse:
Oltre a quello già detto da Alessandro e Pietro aggiungerei, per
comodità,
anche il seguente esempio.
var = false
puts “true” if var # non stampa nulla
puts “nil” if var.nil? # idem
puts “false” if var == false # stampa “false”
puts “not true” if !var # stampa “not true”
var = nil
puts “true” if var # non stampa nulla
puts “nil” if var.nil? # stampa “nil”
puts “false” if var == false # non stampa nulla
puts “false” if var === false # idem
puts “false” if var.eql?(false) # idem
puts “not true” if !var # stampa “not true”
quindi nota che nil viene trattato come false ma NON è uguale a false.
Il “||”, da solo, equivalente ad “or”. “||” + “=” sono un assegnazione
condizionale e funzionano cos: quel codice ti restituisce
session[:counter] se session[:counter] definito. Oppure, setta
session[:counter] a 0 e restituisce 0.
Sperando di non aver detto boiate e sempre pronto a inchinarmi a chi ne
sa di pi
Alessandro
Grazie alessandro, quindi se usato tipo:
if (condizione1 || condizione2) ha la funzione di “or” logico,
altrimenti se usato cosi:
variabile ||= valore verifica che la variabile non è nil
(sostanzialmente fa un variabile.nil?), se lo è setta la variabile a
valore…???
Grazie ancora
Federico
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.