blog画像が表示されないページは、元画像を間違えて削除してしまっているためです。データが残っていないので、想像力で補ってください。2016/07/02[勉]Rubymrubyとmruby/cがある、というのは調べたが、そもそも言語仕様をよく知らないので、軽く調べておこう。ここで「入門」で調べると、「変数とは」とかから始まって、中身を調べるまでがきつい。Ruby」とかで検索して、知っている言語との違いや、こっちにあってこっちにない、のようなところを見ていく。いいつつ、ちょっとやっただけの言語も知っている部類で書くので、間違ってたら済まんです。変数宣言が特にないようだ変数名の1文字目でいろいろ決まるスコープは、ローカル、インスタンス、クラス、グローバル擬似変数というものがある。C++のthisみたいなやつ。組み込み変数というものがある。argv[]みたいな感じか。あとで試すモジュールは、クラスっぽいけど特殊扱いらしいnullじゃなくて、nilthisじゃなくて、selfincludeじゃなくて、requireファイル名を書くけど、相対パス指定で書くのが良いのか?さあ、いくつか試してみよう。関数というかメソッド。test1.rbhello普通に動いた。これはJavaみたいにファイル名と結びついたtest1というクラスなのだろうか?class()というメソッドで属するクラス名がわかるらしいので、見てみよう。test2.rbObject予想と違った。Objectは、Javaのように全てのクラスのスーパークラスとのこと。うーん、でも、Objectから派生したクラスじゃなくて、直接Objectに属しているということになるのか?あるいは、どこにも属していないから、やむなくObjectと表示しているだけなのか。いや、class()の例に、self.class()でObjectと出力されているな。クラスのメソッドにしてみよう。test3.rbKlassふむ、地の文のselfはObjectクラスに属しているということか。別ファイルにしてみよう。test4.rbKlass同じディレクトリだからといって、"./"を書かなかったらダメだった。test5.rbNilClassnilじゃなくて、NilClassなんだ。nilは変数で、そのクラスがNilClassとのこと。クラス名じゃ操作できないから、そうなるか。NilClassにprintメソッドが属するのも変な気がするが、printはKernelモジュールに属しているそうだ。出力がnilだから、NilClassになったというだけなのだね。Kernelモジュールは全てのクラスが参照できるとのこと。「Objectクラスのメソッドは実際にはこのモジュールで定義されています」とあるが、さっき使ったclass()は載ってないな。1回ざっと見ただけで言語仕様がわかるわけでもないので、このくらいで止めておこう。件のコメント:コメントを投稿コメントありがとうございます。申し訳ないですが勝手に削除することもあります。コメントを投稿できるのは、このブログのメンバーだけです。