CIao a tutti, voglio imparare ad usare Ruby e sto seguendo questa guida http://corsorubyonrails.com/imparare-a-programmare... A fine "capitolo" ci sono due esercizi, il secondo dice " Scrivi un programma che chieda all'utente quale sia il suo numero preferito. Poi fai s che il programma sommi uno al numero inserito e quindi suggerisca il risultato come un numero *pi grande e quindi migliore* da preferire. (Abbi del tatto, per)." Io ho scritto questo puts 'Qual\' e\' il tuo numero preferito?' numero= gets.chomp S= 1+numero.to_i puts 'Dai\', e\' molto meglio' +S+ 'perche\' e piu\' grande' Perch non va? /: Non riesco a far riconoscere la stringa come numero /:
on 2012-11-07 21:53
on 2012-11-07 21:56
puts 'Dai\', e\' molto meglio' +S.to_s+ 'perche\' e piu\' grande' questo risolve il problema :) Ti consiglio, visto che sei alle prime armi, di non usare le lettere maiuscole come iniziali per le variabili ( convenzione che le variabili inizino con lettere minuscole in ruby) 2012/11/7 Lorenzo Nargiso <chaoz4ngel@gmail.com>
on 2012-11-07 22:50
Ricordo che quando cominciai a scrivere in Ruby, una delle cose che mi
colpi fu la sua flessibilità nello scrivere stringhe (perlomeno
rispetto ai linguaggi da cui arrivavo io).
L'istruzione
puts 'Dai\', e\' molto meglio' +S + 'perche\' e piu\' grande'
si può scrivere anche come
puts "Dai', e' molto meglio #{S} perche' e piu' grande"
In questo caso è Ruby che si occupa di chiamare S.to_s in fase di
interpolazione.
Un link per approfondire:
http://en.wikibooks.org/wiki/Ruby_Programming/Synt...
Ciao,
Silvano
2012/11/7 Lorenzo Nargiso <chaoz4ngel@gmail.com>:
>
> Ml@lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
--
Considera l'ambiente prima di stampare questa email. Be a total user
rather than a complete waster.
. . . Silvano Stralla . . .
❡ email: silvano.stralla@sistrall.it
❡ site: http://www.sistrall.it
★ kitchen: http://keepcooking.it/
on 2012-11-08 00:03
Il giorno mercoled 7 novembre 2012, Sante Rotondi ha scritto: > > Ti consiglio, visto che sei alle prime armi, di non usare le lettere > maiuscole come iniziali per le variabili ( convenzione che le variabili > inizino con lettere minuscole in > Non solo una convenzione, le maiuscole identificano una costante :-)
on 2012-11-08 09:01
Andrea Pavoni wrote in post #1083472: > Il giorno mercoled 7 novembre 2012, Sante Rotondi ha scritto: > >> >> Ti consiglio, visto che sei alle prime armi, di non usare le lettere >> maiuscole come iniziali per le variabili ( convenzione che le variabili >> inizino con lettere minuscole in >> > > > Non solo una convenzione, le maiuscole identificano una costante :-) Verissimo: $ irb 1.9.3-p286 :001 > S = 2 => 2 1.9.3-p286 :002 > S = 3 (irb):2: warning: already initialized constant S => 3 Altro consiglio: usa pure le lettere accentate, "perché è più facile da leggere", ma fai attenzione ad iniziare tutti i file con una riga di commento che ne indichi l'encoding come # encoding: UTF-8 altrimenti ruby si arrabbia: $ cat prova.rb puts "non và" $ ruby prova.rb prova.rb:1: invalid multibyte char (US-ASCII) prova.rb:1: invalid multibyte char (US-ASCII) $ cat prova2.rb # encoding: UTF-8 puts "và" $ ruby prova2.rb và Per il web ti consiglio di usare sempre e solo l'encoding UTF-8. Fai attenzione che l'editor che usi salvi i file proprio nell'encoding che indichi nel commento. Per l'UTF-8 assicurati che il file sia salvato senza il BOM (es: notepad++ su Windows ha un'opzione apposita) perché sarà più compatibile con più tool ed sistemi. Se ti vuoi addentrare nei misteri degli encoding, a me piacciono questo due entry point http://yehudakatz.com/2010/05/05/ruby-1-9-encoding... http://blog.grayproductions.net/articles/ruby_19s_string Paolo
on 2012-11-08 10:29
Gi che siamo in tema newbie, cosa dovreste assolutamente far vedere di ruby a qualcuno che lo vede per la prima volta? Da domani inizia un corso in quattro lezioni, che sfortunatamente per chi lo seguir sar tenuto da me :) Magari i vostri consigli salveranno qualche giovane anima!
on 2012-11-08 11:56
Ciao, sto tenendo ad un paio di amici un corso introduttivo alla programmazione, con Ruby. Se la platea ha gi chiaro cosa sia l'OOP puoi passare direttamente a far vedere le caratteristiche pi interessanti di Ruby. - Type System - Module Mixing - Meta programming Per quattro lezioni mi pare gi abbastanza 2012/11/8 Sante Rotondi <saten.r@gmail.com> > http://lists.ruby-it.org/mailman/listinfo/ml > -- Riccardo -- L'esperienza quello che ottieni quando, non ottieni quello che desideri.
on 2012-11-08 12:01
Blocchi/lambda/Proc sono il primo scoglio di chi si approccia a Ruby partendo da un linguaggio che non li ha. Idem per i simboli. A me piace sempre concentrarmi un pochino sull'aspetto "morfologico": splat param, literals, e vari idiomi comuni tipo ||=. Questo per dare agli allievi gli strumenti per leggersi il codice su Github senza fare "boh" ogni 2 secondi. Fino adesso ha sempre funzionato! -- Luca Pradovera luca.pradovera@gmail.com +39 346 4296868 Il giorno 08/nov/2012, alle ore 10:28, Sante Rotondi <saten.r@gmail.com> ha scritto:
on 2012-11-08 15:18
Di solito faccio vedere i simboli tra le primissime cose, perché si usano praticamente ovunque. A chi ha familiarità con C o Java li spiego come delle costanti che si danno da sole un valore dentro all'interprete, perché in fondo quel valore non ci interesserà mai e C e Java ci fanno sprecar tempo a inventarceli ed assicurarci che non ci siano collisioni. Buona l'idea di Luca della morfologia. Poi mi concentrerei sulle basi: classi, moduli, ereditarietà, mixin. La metaprogrammazione è molto bella ma attenderei almeno il secondo giorno, altrimenti vanno in information overload. Paolo Luca P. wrote in post #1083540: > Blocchi/lambda/Proc sono il primo scoglio di chi si approccia a Ruby > partendo da un linguaggio che non li ha. > Idem per i simboli. > A me piace sempre concentrarmi un pochino sull'aspetto "morfologico": > splat param, literals, e vari idiomi comuni tipo ||=. > Questo per dare agli allievi gli strumenti per leggersi il codice su > Github senza fare "boh" ogni 2 secondi. > Fino adesso ha sempre funzionato! > > -- > Luca Pradovera > luca.pradovera@gmail.com > +39 346 4296868 > > > > Il giorno 08/nov/2012, alle ore 10:28, Sante Rotondi <saten.r@gmail.com> > ha scritto:
on 2012-11-08 16:14
Il 08 novembre 2012 12:01, Luca Pradovera <luca.pradovera@gmail.com> ha scritto: > Blocchi/lambda/Proc sono il primo scoglio di chi si approccia a Ruby partendo da un linguaggio che non li ha. > Idem per i simboli. > A me piace sempre concentrarmi un pochino sull'aspetto "morfologico": splat param, literals, e vari idiomi comuni tipo ||=. > Questo per dare agli allievi gli strumenti per leggersi il codice su Github senza fare "boh" ogni 2 secondi. > Fino adesso ha sempre funzionato! 100% agree; anche noi usiamo lo stesso approccio. le reazioni in genere sono un mix tra wow-effect e non-ne-uscir-mai-vivo ma dopo qualche ora di tentativi sono in grado di leggere codice di altri, che IMO il primo passo per andare oltre. m.
on 2012-11-08 19:09
# encoding: utf-8 puts 'Qual è il tuo nome completo?' name = gets.chomp puts 'Lo sapevi che ci sono ' + name.length+ ' caratteri nel tuo nome, ' + name + '?' Mi sento davvero troppo impedito, devo far contare il numero di caratteri del mio nome, ma mi restituisce l'errore /:
on 2012-11-08 19:13
2012/11/8 chaoz angel <chaoz4ngel@gmail.com> > puts 'Qual il tuo nome completo?' > name = gets.chomp > puts 'Lo sapevi che ci sono ' + name.length+ ' caratteri nel tuo nome, ' > + name + '?' > i consigli sul .to_s o sull'usare i doppi apici e l'interpolazione delle stringhe con #{} possono aiutarti
on 2012-11-08 19:54
chaoz angel wrote in post #1083610: > # encoding: utf-8 > puts 'Qual è il tuo nome completo?' > name = gets.chomp > puts 'Lo sapevi che ci sono ' + name.length+ ' caratteri nel tuo nome, ' > + name + '?' > > > Mi sento davvero troppo impedito, devo far contare il numero di > caratteri del mio nome, ma mi restituisce l'errore /: il problema credo sia nel fatto che hai terminato la riga senza / per dire a Ruby che puts deve elaborare anche + name + '?' Prova così: puts 'Lo sapevi che ci sono ' + name.length+ ' caratteri nel tuo nome, '/ + name + '?' (In Ruby 1.9 da quello che so viene evalutata la riga seguente come contiunazione della precedente solo se la riga comincia con un punto, per il method chaining ) Altra cosa, io toglierei "#enconding: uft8", da più problemi che utilità...IMHO, è solo una chicca da sapere, ma non usare mai lettere accentate et similari nel codice, non ce n'è bisogno. Riguardo agli argomenti da spiegare in un corso di quattro giorni, io prima analizzerei il background dei partecipanti e mi focalizzerei sulle differenze rispetto ai linguaggi che già conoscono.
on 2012-11-08 20:08
Usa SEMPRE l'encoding, fidati.
Noi abbiamo un rake task apposta per non dimenticarlo!
Inoltre secondo me con l'interpolazione di stringa ne guadagna la
lettura del codice, per sono gusti.
Esempio:
puts "Lo sapevi che ci sono #{name.length} caratteri nel tuo nome,
#{name}?"
Inviato da iPhone
Il giorno 08/nov/2012, alle ore 19:54, Rocco Galluzzo
<mail@roccogalluzzo.com> ha scritto:
on 2012-11-08 20:21
Ops... sorry...scusate, io per encoding parlo quello dei nomi delle variabili, per il file sorgente assolutamente si, ci mancherebbe. Io l'ho settato in vim come encoding standard(ma tutti gli editor e ide che ho visto pemettono di fare la stessa cosa, di solito si setta UTF-8 senza BOM) In ruby non aggiungo niente poiché in tutte le macchine che l'ho installato puts __ENCODING__ mi da UTF-8 (credo sia di default, almeno nella 1.9.2 e 3) Luca P. wrote in post #1083616: > Usa SEMPRE l'encoding, fidati. > Noi abbiamo un rake task apposta per non dimenticarlo! > Inoltre secondo me con l'interpolazione di stringa ne guadagna la > lettura del codice, per sono gusti. > > Esempio: > puts "Lo sapevi che ci sono #{name.length} caratteri nel tuo nome, > #{name}?" > > Inviato da iPhone > > Il giorno 08/nov/2012, alle ore 19:54, Rocco Galluzzo > <mail@roccogalluzzo.com> ha scritto:
on 2012-11-08 21:18
Luca P. wrote in post #1083616: > Usa SEMPRE l'encoding, fidati. > Noi abbiamo un rake task apposta per non dimenticarlo! > Inoltre secondo me con l'interpolazione di stringa ne guadagna la > lettura del codice, per sono gusti. > > Esempio: > puts "Lo sapevi che ci sono #{name.length} caratteri nel tuo nome, > #{name}?" > > Inviato da iPhone > > Il giorno 08/nov/2012, alle ore 19:54, Rocco Galluzzo > <mail@roccogalluzzo.com> ha scritto: Grazie mille (grazie a tutti per le continue risposte, consigli e aiuti :D), con questo ho risolto. Ma se l'avessi dovuto fare con "to_s" come avrei dovuto scrivere? Non mi riesce proprio /:
on 2012-11-09 08:29
name.length.to_s Ruby non ha le dichiarazioni dei tipi ma è un linguaggio tipizzato, nel senso che le conversioni devono essere esplicite. Ricorda to_s, to_i, to_f, to_a, to_sym Paolo chaoz angel wrote in post #1083625: > Luca P. wrote in post #1083616: >> Usa SEMPRE l'encoding, fidati. >> Noi abbiamo un rake task apposta per non dimenticarlo! >> Inoltre secondo me con l'interpolazione di stringa ne guadagna la >> lettura del codice, per sono gusti. >> >> Esempio: >> puts "Lo sapevi che ci sono #{name.length} caratteri nel tuo nome, >> #{name}?" >> >> Inviato da iPhone >> >> Il giorno 08/nov/2012, alle ore 19:54, Rocco Galluzzo >> <mail@roccogalluzzo.com> ha scritto: > > Grazie mille (grazie a tutti per le continue risposte, consigli e aiuti > :D), con questo ho risolto. > Ma se l'avessi dovuto fare con "to_s" come avrei dovuto scrivere? Non mi > riesce proprio /:
on 2012-11-09 10:31
Il giorno 08/nov/2012, alle ore 20:21, Rocco Galluzzo <mail@roccogalluzzo.com> ha scritto: > mi da UTF-8 (credo sia di default, almeno nella 1.9.2 e 3) +10 :-) > Luca P. wrote in post #1083616: >> Inoltre secondo me con l'interpolazione di stringa ne guadagna la >> lettura del codice, per sono gusti. l'interpolazione anche pi performante perch crea una sola stringa a runtime. quando usi la concatenazione, invece, stai creando N stringhe pi quella finale con il risultato. A. -- http://andreapavoni.com
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.