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
local - モジュールの局所変数
使い方
local loc1, loc2, ...;
パラメータ
loc1, loc2, ... - 1 個以上の局所変数名、または型の指定された変数
説明
モジュール定義の先頭部分には、1個以上の局所変数の宣言を含んでいても構いません。これらの局所変数は手続きにおける局所変数と全く同じものです。それぞれの式 loci(i=1,2,...) は symbol であるか、 `::` を用いた式でなければなりません。第1オペランド(変数名)は、 symbol 型の変数です。 局所変数が `::` を用いて宣言された場合には、kernelopts( 'assertlevel' ) の値が 2 以上になっていない限り、 型がチェックされることになります。
局所変数として拘束されている変数は、それを宣言しているモジュール定義の本体中では見ることができるが、その外部からは見ることができません。 エクスポート変数のように( :- を使って)アクセスしようとしても、エラーになるだけです。
局所変数は、それを拘束しているモジュールの定義を実行するために、一意的に存在しています。モジュール定義が実行されるたびに、新しい局所変数の集合が生成されるのです(定義の実行は評価計算の一部なのです)。
モジュールの局所変数の評価規則は、手続きの局所変数の評価規則と同じです(詳細については eval を参照して下さい)。
モジュール内の局所変数をアクセスしたいならば、局所変数の値を調べたり修正したりするためのエクスポート変数を用意すると良いでしょう。 注意: 局所変数がモジュールから「解放」される様子は、手続きから局所変数が解放される場合と同じになります。
例
m := module() local loc1; export setter, getter; loc1 := 2; getter := proc() loc1 end proc; setter := proc( v ) loc1 := v end proc; end module: m:-getter();
m:-loc1; # no direct access to loc1
Error, module does not export `loc1`
m:-setter( 5 ); # loc1 can be accessed indirectly
m:-getter(); # and here
参照
module, module[export], procedure
Download Help Document