2012-02-25 15 views
9

Stavo guardando la documentazione di Ruby e mi chiedo se tutto sia un oggetto, quindi le "parole chiave" sono anche oggetti, giusto? E se sì, dove sono definiti in rubino?Dove sono definite le parole chiave in Ruby?

La seguente pagina mi ha completamente confuso perché ha mostrato l'oggetto con tutte le parole chiave in esso, tuttavia questo non è l'oggetto ufficiale che viene utilizzato da tutte le classi, è questo mescolato in qualche modo da una classe diversa ??

http://ruby-doc.org/docs/keywords/1.9/Object.html

Credo che ci sono un sacco di domande di cui sopra, la principale è: come fanno le parole chiave rubino entrare in rubino?

+1

Se si prende "tutto è oggetto" in questo senso, allora non è vero. Le parole chiave non sono oggetti. E un'altra cosa che non è un oggetto che mi è stato confuso all'inizio è un blocco. Anche i blocchi non sono oggetti. – sawa

risposta

20

Le parole chiave non sono oggetti ma definiti nel parser che può essere trovato in parse.y nell'origine Ruby. Ecco la parte rilevante da quel file:

reswords : keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__ 
     | keyword_BEGIN | keyword_END 
     | keyword_alias | keyword_and | keyword_begin 
     | keyword_break | keyword_case | keyword_class | keyword_def 
     | keyword_defined | keyword_do | keyword_else | keyword_elsif 
     | keyword_end | keyword_ensure | keyword_false 
     | keyword_for | keyword_in | keyword_module | keyword_next 
     | keyword_nil | keyword_not | keyword_or | keyword_redo 
     | keyword_rescue | keyword_retry | keyword_return | keyword_self 
     | keyword_super | keyword_then | keyword_true | keyword_undef 
     | keyword_when | keyword_yield | keyword_if | keyword_unless 
     | keyword_while | keyword_until 
     ; 

Se vuoi sapere di più sul parser Ruby, guardare la presentazione Hacking parse.y da RubyConf 2009 o Parse.y famtour da Ruby Kaigi 2011.

Inoltre, un sacco di i metodi disponibili ovunque (ad esempio, puts) sono definiti nel modulo Kernel.

MODIFICA: C'è anche un list of key words in the documentation, grazie a @antinome per indicarlo.

+0

Grazie per l'ottima informazione ... lol ... bella presentazione di Ruby Kaigi 2011, ho bisogno di rispolverare il mio giapponese. :) – Kamilski81

+0

Per quello che vale, ecco dove la documentazione ruby ​​elenca le parole chiave: https://github.com/ruby/ruby/blob/trunk/doc/keywords.rdoc – antinome

+0

@antinome Grazie, incluso nella risposta. :) –

Problemi correlati