スクリプト言語の比較 > クラス変数 Perl Python class Foo: x = 0 def __init__(self): Foo.x = Foo.x + 1 def foo(self): print Foo.x f1 = Foo() f1.foo() # => 1 f2 = Foo() f1.foo(); f2.foo() # => 2 2 Ruby @@ を前置(1.6から?) class Foo @@x = 0 def initialize @@x += 1 end def foo puts @@x end end f1 = Foo.new f1.foo # => 1 f2 = Foo.new f1.foo; f2.foo # => 2 2 ECMAScript(Javascript) コンストラクタ(これもFunctionオブジェクト)のスロットをクラス変数の様に使えま
スクリプト言語の比較 > インスタンスメソッドの追加 Perl package Foo; sub new{ # ... } sub foo{ print "foo"; } package main; $f = Foo->new(); $f->foo(); # => "foo" sub Foo::bar{ print "bar"; } $f->bar(); # => "bar" package Foo; sub baz{ print "baz"; } package main; $f->baz(); # => "baz" # 動的に追加/再定義する事も出来ます。 # 警告モードの元では再定義で警告を発します。 *{ref($f)."::foo"} = sub{ print "new foo" }; $f->foo(); # => "new foo" Python <URL:http://di
Perl return で値を返すことができる。 sub foo { return 1; } $x = foo(); print "$x\n"; 最後に評価された値が戻り値になるので、 以下のように return を書かないこともできる。 sub foo { 1; } $x = foo(); print "$x\n"; 以下のように複数の値を返すことができる。 sub foo { return 1, 2; } ($x, $y) = foo(); print "$x $y\n"; 配列が返ってくるだけなので以下のようにも記述できる。 sub foo { return 1, 2; } @x = foo(); print "$x[0] $x[1]\n"; 以下のようにリファレンスを使うとハッシュを返すことができる。 sub foo { return {'one' => 1, 'two' => 2
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く