パッケージ関連の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