goddameit 發表於 2012-7-4 23:42:07

SeAr - set和setarray在設定矩陣變數的時的須知

測試版本: SeAr_1.7.277

感謝:

a91323 提出腳本Bug回報讓我發覺

Inkfish 的實際確認

o丫コ嘉oO 的訊息

.

以下是測試過程

腳本內碼
      deletearray .viewid,128;
      for(set .@i,0;.@i<15;set .@i,.@i+1)
      {
                set .viewid[.@i],rand(999);
                set .viewid[.@i+15],.viewid[.@i];
      }
      announce getarraysize(.viewid),0;
      end;

顯示結果
http://i.imgur.com/wNwvx.png

出問題了
應該只有30組數據的矩陣, 卻返回128組?

理由我不清楚

但是改成
      deletearray .viewid,128;
      for(set .@i,0;.@i<15;set .@i,.@i+1)
      {
                setarray .viewid[.@i],rand(999);
                setarray .viewid[.@i+15],.viewid[.@i];
      }
      announce getarraysize(.viewid),0;
      end;
就沒問題了
http://i.imgur.com/2yXIr.png

以上內容僅供作為提醒使用

實際原因理由我不知道

PoringRO 發表於 2012-7-5 08:05:09

本帖最後由 PoringRO 於 2012-7-5 08:07 AM 編輯

set 是傳址,setArray傳值

setarray .b,1,2,3,4,5,6,7,8,9,10;
set .a,.b;

.a 會 = 2
第一種情況arraysize才會偏移
事實上後面是有數值出現的

Inkfish 發表於 2012-7-5 09:17:12

楼上的分析却有道理
事实上后面的数组会出现
0-14a-x
15-29 a-x
30-43 a-v
44      0
45-57 a-u
58-59 0,0

类推

的确符合传址
頁: [1]
查看完整版本: SeAr - set和setarray在設定矩陣變數的時的須知