文字列の挙動

投稿者:shogo314 投稿日:2025/06/21(Sat) 02:15:14 No.2484

2.0.1330のコンパイラで以下のコードをコンパイルして実行すると実行時にエラーになります
コード
```
【s:文字列】=「abc」
【l:文字列の配列】={}
lにsの1文字目を追加
lを表示
```
出力
```
エラーが発生しました。
文字列には序数詞が指定できません。

at Produire.RuntimeModel.POrdinalReceiver.1 () [0x000bc] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Produire.6.0 (Produire.ConstructScopeIL 0, System.Object& 1, System.Boolean 2, System.Object 3, Produire.RdrCallSite 4) [0x003b3] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Produire.ConstructScopeIL.Invoke (System.Object targetObject, System.String shortVerbName, System.String[] names, System.String[] particles, System.Object[] arguments, System.Boolean useReturnValue, System.Boolean isPartial, System.Object lastValue) [0x001e6] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Produire.ConstructScopeIL.Invoke (System.Object targetObject, System.String shortVerbName, System.String[] names, System.String[] particles, System.Object[] arguments, System.Boolean acceptReturnValue) [0x00000] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Main.広域種類.MainCode () [0x0004a] in <698af084d12245e79f459603d0f7c25e>:0
at Main.メイン種類.起動 () [0x0000b] in <698af084d12245e79f459603d0f7c25e>:0
at Main.メイン種類.Main () [0x00000] in <698af084d12245e79f459603d0f7c25e>:0
[ERROR] FATAL UNHANDLED EXCEPTION: Produire.ProduireException: 文字列には序数詞が指定できません。
at Produire.RuntimeModel.POrdinalReceiver.1 () [0x000bc] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Produire.6.0 (Produire.ConstructScopeIL 0, System.Object& 1, System.Boolean 2, System.Object 3, Produire.RdrCallSite 4) [0x003b3] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Produire.ConstructScopeIL.Invoke (System.Object targetObject, System.String shortVerbName, System.String[] names, System.String[] particles, System.Object[] arguments, System.Boolean useReturnValue, System.Boolean isPartial, System.Object lastValue) [0x001e6] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Produire.ConstructScopeIL.Invoke (System.Object targetObject, System.String shortVerbName, System.String[] names, System.String[] particles, System.Object[] arguments, System.Boolean acceptReturnValue) [0x00000] in <2535d72e036541e6a6f2bc8620ec6f76>:0
at Main.広域種類.MainCode () [0x0004a] in <698af084d12245e79f459603d0f7c25e>:0
at Main.メイン種類.起動 () [0x0000b] in <698af084d12245e79f459603d0f7c25e>:0
at Main.メイン種類.Main () [0x00000] in <698af084d12245e79f459603d0f7c25e>:0
```

下のコードではもっと変なことになってます
コード
```
【s:文字列】=「abc」
l={}
lにsの1文字目を追加
lを表示
```
出力
```
{abcの1文字目}
```

確認よろしくお願いします

修正しました(2.0.1331)

投稿者:ゆうと 投稿日:2025/06/21(Sat) 17:35:59 No.2485

こんにちは、お世話になっております。

文字列の序数詞の件、確認できましたので最新版で修正いたしました。
再現コードとログの詳細、ありがとうございます。

「〜番目」や「〜文字目」など序数詞を用いた文で、コンパイル後のパフォーマンスが悪いため、引き続き何度か改修するかと思います。

よろしくお願いいたします。

▲ページの先頭へ

- WebForum -