現在、Ruby3.3を使っています。
Rubyをインストールすると、既存の状態で、色々なgemが標準的に使えるようになっております。
標準的に入っているgemの中でも、requireしないといけないタイプのgemとrequireしなくても使えるgemとがあるように思うのですが、その違いは何なのでしょうか。
標準的に入っているgemの中で、loggerはrequireしなくても使えますが、yamlはrequireしないと使えないようです。このように混在している理由が分かっておりません。
> 標準的に入っているgemの中で、loggerはrequireしなくても使えますが
こちらの環境は ruby 3.3.5 ですが、require しないと logger を使用することができません。
$ ruby --version
ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]
$ ruby -e 'logger = Logger.new(STDOUT)'
-e:1:in `<main>': uninitialized constant Logger (NameError)
logger = Logger.new(STDOUT)
^^^^^^
require "logger" を実行すればエラーにはなりません。
$ ruby -e 'require "logger"; logger = Logger.new(STDOUT)'
自分も同じRuby3.3.5ですが、Loggerはrequireなしでエラーになりません。
なぜだろう。
> 自分も同じRuby3.3.5ですが、Loggerはrequireなしでエラーになりません。
Railsコンソールから呼び出している、ということはありませんか?
>Railsコンソールから呼び出している、ということはありませんか?
Ruby単体で使っています。
OSはWindows10で動かしていますが、関係ないかな?
回答1件
あなたの回答
tips
プレビュー