Hatena::ブログ(Diary)

みずぴー日記 Twitter

2008-12-06(土)

パッケージ関連のABC

| パッケージ関連のABCを含むブックマーク

パッケージ関連のABCを淡々と貼るよ。

要約

  • publicな関数はNamespaceを使う
  • internalな関数はInternalNamespaceを使う
  • グローバルや階層パッケージ(flash.display.*など)は特別扱いされない

グローバルでinternalな関数

package{
  function f(){
    return "global internal";
  }
}
0:cpool_ns[1]=internal
0:cpool_mn[1]=qname ::f

グローバルでpubilcな関数

package{
  public function f(){
    return "global public";
  }
}
0:cpool_ns[1]=namespace
0:cpool_mn[1]=qname g

適当なパッケージ内でinternalな関数

package hoge{
  function g(){
    return "package internal";
  }
}
0:cpool_ns[1]=internal hoge
0:cpool_mn[1]=qname hoge::g

適当なパッケージ内でpublicな関数

package hoge{
  public function g(){
    return "package global";
  }
}
0:cpool_ns[1]=namespace hoge
0:cpool_mn[1]=qname hoge::g

階層構造

package a{
  package b{
    function f(){
      return "f";
    }
  }
}

コンパイルできない。

package a.b{
    function f(){
	return "f";
    }
}
0:cpool_ns[1]=internal a.b
0:cpool_mn[1]=qname a.b::f

kmizushimakmizushima 2008/12/07 11:08 現在の最新安定版であるscala 2.7.2 final(Windows版)で
確認しましたが、ちゃんとPredef.printlnはありました。
本家のAPIリファレンス
http://www.scala-lang.org/docu/files/api/index.html
見てもちゃんと残っていますね。

mzpmzp 2008/12/07 14:29 んー、やっぱりそうですよねぇ。
調べてみたら、Ubuntuのaptで入るscalaのバージョンが2.3.0だったので、古いのが原因な気がしてきました。

トラックバック - http://d.hatena.ne.jp/mzp/20081206/abc