octave3.0で2とちがう挙動な件

そうそうoctaveは3.0になって無名関数が使えるようになりました.これで多少ましになったかなーとか思った.

しかし,2のコードをそのまま流し込むとエラーになるなんで.とか思った.
こういうエラー.


octave:4> b{1}.p = 1
b =

{
  [1,1] =
  {
    p =  1
  }

}

octave:5> b{1}.p.a = 1
error: scalar cannot be indexed with .
error: assignment to structure element failed
error: assignment failed, or no method for `cell = scalar'

2のときはp = 1を p.a = 1で上書きできてたけどできなくなったってことですかね.

試してみたら,一こめは上書きしてくれたけど,にこめは上書きしてくれない.パーサーの問題?なのか,機能拡張したら干渉したのでわざとそういう仕様にしたのかしらんですけど.しかし,octaveはこういう意味不明というか言語仕様がはっきりしないというかわかりにくいのが多い.裏ではcを叩いているみたいですが,こういうことがあると,pythonで書いてまったほうが早いなーとか思う.


octave:5> c = 1
c =  1
octave:6> c.a = 1
c =
{
  a =  1
}

octave:7> c.a.b = 1
error: scalar cannot be indexed with .
error: assignment to structure element failed
error: assignment failed, or no method for `struct = scalar'

まあ,今回は4番目のコードはいらんので削って使っていますが.

 

Amazonで最大1500ポイントがもらえる無料体験 [12/12まで]

現在Amazonでaudible(オーディブル)の無料体験キャンペーンが行われており、プライム会員なら最大3000ポイント、会員でない方でも最大1500ポイントがもらえます。

「花火」などの小説や、英語教材などから好きなものを選んで聴くだけですので、チェックしてみてはいかがでしょうか。

 

 こんな記事も読まれています

コメントを残す