• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ヒヤドキュメント無いで関数の戻り値を表示させるには?)

ヒヤドキュメント無いで関数の戻り値を表示させるには?

このQ&Aのポイント
  • ヒヤドキュメントを使わずに関数の戻り値を表示させる方法について知りたいです。
  • 現在は@{ [ 関数(); ] }という方法を使っていますが、他にも埋め込みできる方法があるのでしょうか?
  • 以下のような方法は避けたいです。 my $sitakunai = 関数(); my $x = <<"END_OF_TEXT"; ここに関数結果を表示させる。 $sitakunai END_OF_TEXT

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

推測ですが、単純な変数ではない、関数呼び出しなどの interpolationは正規表現の置換の /ee と同じで 後から発見された動作ではないかと思います。 一応 Perl 6になれば、Rubyのように(それ以上?) 色々interpolationできるようにはなるようです。 http://blog.livedoor.jp/dankogai/archives/50514191.html

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

> ヒヤドキュメント無いで関数の戻り値を表示させるには、 > どう記述すればよいのでしょうか? > 私は、@{ [ 関数(); ] }としていますが、 それで解決しないか何か問題でもあるのでしょうか?

mine_23
質問者

補足

${ }のように、もう少し簡単な記述があればと思っていましたが 無いようですね。 @{ [] } []は、なかなか直感的にわかりづらいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 関数名、パラメータは同じで、戻り値によって異なる処理?

    戻り値というより、受け側によって関数の振る舞いを変えたいのですが、 C++では、同名、同パラメータはC2556のコンパイルエラーになります。 Perlでいうリスト値を返すかスカラー値を返すかは呼び出し側によるようなことをしたいのですが、C++では無理でしょうか? 下の例では、//...部分は戻り値によって異なるのでC++のテンプレート?では無理そうですが、そんなことはC++でできるのでしょうか? 似たようなテクニックでも構いませんので、知識の豊富な方、教えてください。 #include <iostream> #include <string> using namespace std; class A { public: A(){} ~A(){} int test(int x, int y){           //... return 0; } string test(int x, int y){ // ... return ""; } }; void main(void){ A a; int ret1 = a.test(1,2); string ret2 = a.test(1,2); cout << endl << "End..." << endl; }

  • dequeue(BYTE *x)関数の戻り値について

    以前、キューに関する質問をさせていただいた時に、回答者の方から、 BYTE dequeue(void) { BYTE x; if(Head==Tail){ QueueState = QSTATE_EMPTY; return; } Head=(Head+1)%MAX_BUF_NUM; x=UartSendBuf[Head]; UartSendBuf[Head]=0x00; //出力し終わったら0x00でクリアしておく。 return x; } 私のdequeue関数でエラーが発生している場合に単なる”return”で戻しているということでご指摘頂いたのですが、下記する文章で回答者の方が教えて頂いた内容で理解できない部分があり、困っております。 ----(回答者さんの文章)------------------------------------- その他、気づいた点。dequeue()はBYTE型の値を返す関数なのに、異常時に単にreturn;してます。こういう事をしてると後で痛い目に遭います(笑)。 このようなケースでは次のどちらかの方法をとります。 (a)正常時には決して返すことの無い値(0とか-1など)をエラーとして返す。 しかし表現可能なすべての値がデータとしてありうる場合はこの方法をとれないので、 (b)関数が返す値を成功か失敗か(或いはエラーの種類)だけにする。 データを返すためのポインタを引数として渡してもらい、例えば int dequeue(BYTE *x) として、*x = UartSendBuf[Head]; でデータを返します。 -------------------------------------------------------------- 確かにコンパイラはreturnだけで返すのはまずいとワーニングを出しているので、作り変えてみたのですが、 BYTE dequeue(BYTE *x) { if(Head==Tail){ QueueState = QSTATE_EMPTY; return 0xFF; } Head=(Head+1)%MAX_BUF_NUM; *x=UartSendBuf[Head]; return *x; } このポインタ変数が入ってくるのがよくわからず困っています。*xがreturnとなっていますが、どのような戻り値が返ってくるのでしょうか? あと、この関数を使う場合、 dequeue(Head); このような引数を入れてあげればよいのでしょうか? また、キューからデータを取り出したい場合は、 testBuf[i]=UartSendBuf[Head]; test = dequeue(Head); このようにdequeue関数の前でデータを取り出してから、dequeue関数の戻り値で判定するという処理をするようにしなければいけないでしょうか?

  • 関数の戻り値に関数のアドレスを返すできませんか?

    戻り値に関数のアドレスを与える方法が良く分かりません. ひとまず,以下のように動くプログラムを作りたいと思っています.  f2(1,2)(1); //このように引数の()を二種類に分けたいのですが 無理でしょうか?? プログラムは下のように作って実験しているのですが良く分かりません・・ どなたか分かる方居たら教えてください. int f1(int x , int y){ return 0; } ????? int ff(int x){ return f; };

  • Rnd関数の戻り値

    ボタンのクリックでRnd関数の戻り値をLabelのCaptionに表示させるという シンプルな事をしていたのですが不定期に0~0.9999....以外の数値(?)が 帰ってきます。 例えば 5.244088E-02 等です。 発生に規則性は見当たりませんが、必ず1以上の数で最後にE-02が付きます。 書式は Private Sub Command1_Click()   Label1.caption = Rnd End Sub これだけです。 何かご存知の方がいらっしゃいましたらレスをお願い致します。

  • 関数の戻り値について

    ----test.c----------------- id="0001"; number = get_data(id); /* 関数の戻り値を取得したい */ if(strcmp(number, "01") == 0){ /* Aの処理へ */ }else{ /* Bの処理へ */ } ----test.pc---------------- int get_data(char* id){ EXEC SQL BEGIN DECLARE SECTION; VARCHAR tel_no[3]; VARCHAR id_no[5]; EXEC SQL END DECLARE SECTION; strcpy(id_no.arr,id); id_no.len=strlen(id_no.arr); EXEC SQL SELECT tel_number into :tel_no FROM test_tbl WHERE id=:id_no; tel_no.arr[tel_no.len]='\0'; /*取得したtel_noを返したい!!*/ } --------------------------- test.cで引数に"0001"を指定して、get_data関数を コールして、そのget_data関数で受け取った引数で test_tblを検索しtel_numberフィールドの値を test.cに返し、判断文で処理したいと考えています。 ちなみにtest_tblで引数の条件で合致するデータは 必ず1件のみとします。 どのように記述したらいいかわかりません。 アドバイスお願い致します。m(_ _)m

  • 「戻り値」ですか?「返り値」ですか?

    例えば Sub test1() MsgBox WorksheetFunction.Sum(Range("a1:a3")) End Sub でMsgBoxに表示される値の事は、「戻り値」ですか?「返り値」ですか? いまいちプログラミング用語がわからないので教えて下さい。 よろしくお願い致します。

  • 下記のような関数から外部からの戻り値を返したいのですが

    下記のような関数から外部からの戻り値を返したいのですが 良い方法はございませんでしょうか? 例えば trace( test( "test" ) ); このように戻り値を返す関数にしたいです。 function test( strData:String ):String { var variables:URLVariables = new URLVariables(); variables.data = strData; var request:URLRequest = new URLRequest(); request.url = "http://test.asp"; request.data = variables; request.method = URLRequestMethod.POST; var loader = new URLLoader(); loader.addEventListener(Event.COMPLETE , function(event) { var retValue:String = new String(event.target.data); }); loader.load(request); //return ???? }

    • ベストアンサー
    • Flash
  • 関数の戻り値が複数ある場合

    C言語初心者です。 関数の戻り値を返す場合、return 変数名;と記述しますよね。 配列を返す場合、ポインタを使用しないで返すにはどうしたらいいですか? 例えば合計と平均を計算する関数があり その結果を配列に入れてmainに返すなど。 以前他の方の質問のコメントに 配列の要素が固定であれば、構造体にして返す方法もあります。 struct array { int x[10]; }; struct array func() {  struct array a;  ...  return a; } -- とあったのですが、構造体の要素が全てint型ならば 配列ではダメなのですか?

  • Perlの戻り値について

    配列の戻り値が理解できていないのですが、 Perlで正しく動作させるためには どのように記述したら良いのでしょうか? 戻り値の動作を詳しく書いてある(出来れば図入りで) 本はありますか? 例) sub a { my @a = ('A'); return (@a, "B", 2); } my (@a, $b, $c) = &a; print "a=[@a] b=[$b] c=[$c]\n"; # a=[A] b=[B] c=[2] # これを期待していたが # a=[A B 2] b=[] c=[] # こちらになる

    • ベストアンサー
    • Perl
  • マイコン組み込みC言語の戻り値について

    例えば、 unsigned char kansuu(){ 文   return = 1   文 } のような戻り値がある関数の場合、return = 1 と書くと、 その関数の最後の } まで飛んで離脱してくれます。 そのことを利用して、戻り値がない関数の場合でも return と書いたら、その関数の最後の } まで飛んで離脱してくれるのでしょうか。 意図としましては、関数内である条件を満たすと、 その関数を離脱するようにしたかったからです。 マイコンはルネサスのr8cです。 そもそも、戻り値がない関数でも場合でも、 return を記述しても良いのでしょうか?