Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
export - エクスポート変数宣言
使い方
export e1, e2, ...;
パラメータ
e1, e2, ... - エクスポート変数として用いる1個以上の変数名、型名
説明
モジュール定義における export 句は、そのモジュールが実装された後でありさえすればクライアントからアクセス可能な、1個以上の変数を「宣言」するために用います。変数名は、そのモジュール外部ではメンバー選択演算子 :- を使ってアクセスします。このような変数をそのモジュールの「エクスポート変数」と呼びます。式 e1, e2, ... のそれぞれは、記号、あるいは、sysymbol::type の形の式のいずれかである必要があります。 後者の場合、宣言は、エクスポートに割り当てられた値の型にも影響します。
モジュールのエクスポート変数に関して最も重要なことは、そのモジュールに対しては局所変数として機能するということです。エクスポート変数名の通用する範囲は、そのモジュールの局所変数のそれと完全に一致します。大きな違いは、そのモジュールが実装された後であっても、エクスポート変数を「見る」ことができるという点にあります。
モジュールのエクスポート変数の評価規則は、モジュールの局所変数のそれと同じであり、手続きの局所変数の評価規則とも同じです(詳細については eval を参照して下さい)。
モジュールのエクスポート変数の集合は固定されたものであり、そのモジュール定義が評価されるのと同時にセットされます。いったん実装されたモジュールのエクスポート変数の集合は変更不可能です。
エクスポート変数名は明示的に宣言する必要が有ります。暗黙の通用規則によって、変数名がエクスポート変数として解釈されることは無いのです。
モジュール m のエクスポート変数 s に、 m の中にあるモジュールを割り当てることができます(すなわち、s は m の部分モジュールなのです)。部分モジュール s のエクスポート変数は、m の部分モジュール s を m:-s により指定した後に、s の適当なエクスポート変数 e を m:-s:-e として選択することにより、アクセス可能になります。
例
いくつかのエクスポート変数を宣言します。
m:= module() export a, b, c; option package; end module;
演算子 :- を使って変数をアクセスします。
m:-a;
evalb( a = m:-a ); # not the same name
m:-a := 5;
a;
with( m );
エクスポート変数が可視的かどうかは、ある意味で「遷移的」です。
m := module() export s, p; s := module() export e; e := 2 end module; p := proc() s:-e end proc end module: m:-s:-e;
m:-p();
変数 s が m のエクスポート変数か、変数 e が s のエクスポート変数でないと、うまく動きません。
m := module() export p; local s; s := module() export e; e := 2 end module; p := proc() s:-e end proc end module: m:-s:-e;
Error, module does not export `s`
m:-p(); # still okay
ここでは、変数 e は m の本体の中でさえ利用することができません。
m := module() export p; local s; s := module() local e; e := 2 end module; p := proc() s:-e # error, not an export of s end proc end module: m:-s:-e;
Error, (in p) module does not export `e`
参照
local, module, module/package
Download Help Document