入力引数 'app' は使用されていない可​能性がありますが、後​の引数は使用されてい​ます。~ に置き換えることを検討してください。

5 Ansichten (letzte 30 Tage)
mayu
mayu am 1 Mär. 2023
Verschoben: Atsushi Ueno am 9 Mär. 2023
app designerで補助関数を使用しています。
ヘルプのこのページを見ながら、プライベート関数の枠内に補助関数を定義しているのですが、
▼補助関数によるコードの再利用
▼定義箇所
methods (Access = private)
function ●●Fnc(~,value,引数1,引数2,~)
~~~
end
end
▼呼び出し箇所
●●Fnc(app,value,引数1,引数2,引数3);
「app 引数は必須」と書いてあるのに、関数を定義したappの箇所に、
「入力引数 'app' は使用されていない可能性がありますが、後の引数は使用されています。~ に置き換えることを検討してください。」
というアラートが出て、修正ボタンを押すと、~に置き換えられます。
また、引数3でも同様に置き換わらされます。
appが不要ということなのかと思って「app」を消すと、関数定義箇所に
「app を '●●Fnc' の最初の引数として使用します。」
というアラートが出ます。
なんか矛盾しているような気がするのですが、関数の書き方が間違っているからなのでしょうか。
(書き方を修正することでこれが出なくなるのでしょうか。)
一応これでも関数としては機能してるみたいですが。。
原因がわかる方いらっしゃいましたら、ご教示いただけますと幸いです。

Antworten (1)

Atsushi Ueno
Atsushi Ueno am 1 Mär. 2023
Verschoben: Atsushi Ueno am 8 Mär. 2023
>「app 引数は必須」と書いてある
> 静的メソッドを除き、クラスのオブジェクトを明示的に MATLAB メソッドに渡さなければなりません (引用: メソッドの構文)
>静的でないメソッドは、明示的なオブジェクト変数を関数引数として含まなければなりません。MATLAB 言語は、メソッド関数の定義での暗黙的な参照をサポートしません。(引用: 通常のメソッド)
>なんか矛盾しているような気がするのですが、関数の書き方が間違っているからなのでしょうか。
お気持ちは分かりますが、関数の書き方は正しいです。
チルダ(~)に変わった引数3は削除出来ますが、引数1(app 引数)は必須なのでチルダ(~)のまま残す必要があります。
どちらもそのまま残しても何ら問題は無く、下記の方法に頼る必要はありません。
関数(メソッド)に引数1(オブジェクト)を渡さなくても良い方法として下記が考えられます
  • 関数(メソッド)をクラスの外に出す(クラスとは無関係の関数にする)
  • 静的メソッドを使う
  1 Kommentar
mayu
mayu am 5 Mär. 2023
Verschoben: Atsushi Ueno am 9 Mär. 2023
ご教示いただきましてありがとうございます。
ヘルプを使い慣れておらず過去投稿にたどり着けなくて、確認遅くなってしまい申し訳ございません。。
関数はこれでいいのですね、、
渡さなくていい方法もご教示いただいたのですが、クラスや静的メソッドについてよく分からなかったのでとりあえずこういうものとして記述しておこうと思います。
お忙しい中、ありがとうございました。

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB でのオブジェクト指向デザイン finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!