書籍でRuby学習中にお会いしたuninitialized constant NET (NameError)ついて
参考にした書籍Rubyコードレシピ集
code1.rb
require 'net/http'
uri = URI.parse('https://runteq.jp/')
puts Net::HTTP.get(uri)
これをそのままターミナルに入力すると、HTML取得できます。が、
code1.rb
require 'net/http'
uri = URI.parse('https://runteq.jp/')
puts NET::HTTP.get(uri)
だと、uninitialized constant NET (NameError)が出る。
code1.rb
require 'net/http'
uri = URI.parse('https://runteq.jp/')
puts 'net/http'(uri)
だと、'net/http'が出力されるだけ。
なぜ書籍コードをいじったか
変えたらどうなるかなと興味本位です。
uninitialized constant NET (NameError)
このエラーはNETじゃなくて、Netだよということです。
Rubyでは、命名規則によりクラス名、モジュール名の最初の一文字は大文字であとは小文字と決まっています。
そのため、NETだとエラーになります。
じゃあ、HTTPは全部大文字じゃん。となりました。
HTTPのような略語は全部大文字でいいみたい。
code1.rb
require 'net/http'
uri = URI.parse('https://runteq.jp/')
puts Net::http.get(uri)
undefined method `http' for Net:Module (NoMethodError)が出ました。
略語は大文字でということですね。