拡張リータン構文はどうやって使うの? return ... do 〜 end return;内とそれが帰った先の両方で system.address_image 使って変数のアドレスが同じ(= return 時のコピーが行われない)ようだということは確認できたけど ↓のようにしたらアドレスは同じでも中身のデータが壊れてましたよ? 俺使い方間違ってる?
function test return string is str:string(1..10):=(others=>'n'); begin return ret_str:string(str'range) do for i in str'range loop ret_str(i):=str(i); end loop; end return; end test;