stewie
1
Ragazzi mi serve un aiuto…non riesco a trovare un errore che mi da
eclipse.La linea di codice in questione è la seguente:
puts “if #{privar1}#{princ}#{verifica.sub(/[’]/,’”’)}"
e mi da il seguente errore : private method `sub’ called for
nil:NilClass (NoMethodError)
Premetto che ho provato a fare valore=verifica.split e anche .join ma mi
cmq degli errori.Cosa posso fare???
stewie
2
2009/2/6 Stefano De nigris [email protected]:
e mi da il seguente errore : private method `sub’ called for
nil:NilClass (NoMethodError)
vuol dire che verifica vale nil, mentre dovrebbe essere una stringa.
stewie
3
Pietro G. wrote:
vuol dire che verifica vale nil, mentre dovrebbe essere una stringa.
Pietro ma la cosa divertente è che la stringa ha il valore che voglio
sostituire.Questo è quello che ho digitato:
ciao < ‘ciao’
e questo è il codice:
puts “#{privar1}#{princ}#{privar3.gsub(/[’]/,’”’)}"
dove privar1 la prima parola,princ è il simbolo di disuguaglianza,e la
terza parola è privar3.
stewie
4
2009/2/6 Stefano De nigris [email protected]:
dove privar1 la prima parola,princ è il simbolo di disuguaglianza,e la
terza parola è privar3.
prima era verifica, ora è privar3. qual è il valore di privar3? ruby
dice che questo valore è nil.
stewie
5
scusa puoi postare il codice?
in particolare la lina dove assegni il valore di privar3?
2009/2/6 Stefano De nigris [email protected]:
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Piero B.
My Blog: cookedapple.net
My Books: anobii.com/petecocoon
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396
Please consider the environment before you print this email
stewie
6
Ecco quello che mi hai richiesto piero:
if ciao < ‘ciao’ questo è quello che ho digitato
ed a primariga[1] è associtato ciao,a primariga[2] il simbolo < e a
primariga[3] la parola ‘ciao’.
princ=primariga[2]
privar1=primariga[1]
privar3=primariga[3]
if princ =~ /</
puts “if #{privar1}#{princ}#{privar3.gsub(/[’]/,’”’)}"
end
stewie
7
prima era verifica, ora � privar3. qual � il valore di privar3? ruby
dice che questo valore � nil.
Il valore di privar3 è quello che ti ho fatto vedere prima:
‘ciao’
E’ impossibile che è nil in quanto c’è la virgoletta.
stewie
8
Piero B. wrote:
if ciao < ‘ciao’ questo � quello che ho digitato
Ok, quind lo prendi dallo stdin, non lo avevo capito
immagino che tu faccia una cosa del tipo
stringa_da_tastiera = STDIN.gets
digiti "if ciao < ‘ciao’ "
quindi stringa_da_tastiera conterra’
"if ciao < ‘ciao’ "
e arrivi al punto dove farai un
primariga = stringa_da_tastiera.split(’ ')
ed a primariga[1] � associtato ciao,a primariga[2] il simbolo < e a
primariga[3] la parola ‘ciao’.
per capirci primariga[0] e’ ‘if’?
se non lo e’ primariga[3] e’ valorizzato?
Si primariga[0] è if se no era semplice
Che vuol dire “brutalmente esegui attraverso irb ogni istruzione…e
vedi che e’”??Non ho capito.
stewie
9
if ciao < ‘ciao’ questo è quello che ho digitato
Ok, quind lo prendi dallo stdin, non lo avevo capito
immagino che tu faccia una cosa del tipo
stringa_da_tastiera = STDIN.gets
digiti "if ciao < ‘ciao’ "
quindi stringa_da_tastiera conterra’
"if ciao < ‘ciao’ "
e arrivi al punto dove farai un
primariga = stringa_da_tastiera.split(’ ')
ed a primariga[1] è associtato ciao,a primariga[2] il simbolo < e a
primariga[3] la parola ‘ciao’.
per capirci primariga[0] e’ ‘if’?
se non lo e’ primariga[3] e’ valorizzato?
brutalmente esegui attraverso irb ogni istruzione…
e vedi che e’
ciao
PB
–
Piero B.
My Blog: cookedapple.net
My Books: anobii.com/petecocoon
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396
Please consider the environment before you print this email
stewie
10
digita irb sulla shell (o sul prompt di windoz)
e scrivi ogni comando riga per riga e vedi cosa fa ogni singola riga.
‘brutalmente’ perche’ e’ un po’ poco elegante… 
oppure verifica il risultato della split, dovrebbe essere come segue
primariga = stringa_da_tastiera.split(’ ')
=> [“if”, “ciao”, “<”, “‘ciao’”]
2009/2/6 Stefano De nigris [email protected]:
Che vuol dire “brutalmente esegui attraverso irb ogni istruzione…e
vedi che e’”??Non ho capito.
Posted via http://www.ruby-forum.com/.
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Piero B.
My Blog: cookedapple.net
My Books: anobii.com/petecocoon
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396
Please consider the environment before you print this email
stewie
11
Piero ho fatto come hai detto tu,cioè eseguire uno per uno e mi escono :
ciao,poi < e infine ‘ciao’.
Comunque la cosa che mi fa arrabbiare di più è che con gli altri if non
mi esce questo errore,il codice completo è:
princ=primariga[2]
privar1=primariga[1]
privar3=primariga[3]
if princ =~<>/
diverso=princ.gsub(/[</,"=").gsub(/[>],"!")
puts “if #{privar1.gsub(/[’]/,’”’)}#{diverso}#{privar3.gsub(/[’/,’"’)}"
elsif princ =~ />/
puts “if #{privar1.gsub(/[’]/,’”’)}#{princ}#{privar3.gsub(/[’]/,’"’)}"
elsif princ =~ />=/
puts “if #{privar1.gsub(/[’]/,’”’)}#{princ}#{privar3.gsub(/[’]/,’"’)}"
elsif princ =~ /<=/
puts “if #{privar1.gsub(/[’]/,’”’)}#{princ}#{privar3.gsub(/[’]/,’"’)}"
elsif princ =~ /=/
secele=princ.gsub(/[=]/,’==’)
puts"if #{privar1.gsub(/[’]/,’"’)}#{secele}#{privar3.gsub(/[’]/,’"’)}"
else princ =~ /</
puts “if #{privar1}#{princ}#{privar3}”
Non riesco a spiegarmi il motivo del non funzionamento dell’ultimo if.
stewie
12
On Fri, Feb 6, 2009 at 3:18 PM, Stefano De nigris
[email protected]wrote:
else princ =~ /</
Non ho letto tutto il thread, ma se hai una condizione, hai bisogno di
elsif
non else.
Ciao,
Antonio
http://antoniocangiano.com - Zen and the Art of Programming
http://math-blog.com - Mathematics is wonderful!
http://stacktrace.it - Aperiodico di resistenza informatica
Follow me on Twitter: http://twitter.com/acangiano
Currently writing “Ruby on Rails for Microsoft Developers” for Wrox.
stewie
13
Ah comunque hai ragione antonio ora va…pero non capisco questa cosa
dell’elsif.
stewie
14
Scusa antonio,ma l’ultimo dovrebbe essere un else???