Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
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