[問題] 點點(..)運算子兩問

看板Perl作者時間10年前 (2013/10/27 21:51), 編輯推噓4(409)
留言13則, 4人參與, 最新討論串1/6 (看更多)
對一個array我們可以用@arr[1..2]這樣的方式取到subarray 但對一個array ref 用箭頭$arr_ptr->[1..2]這樣會只取到其中一個值 看不太出規律 而又不會error 有人知道是為什麼嗎 另外一個問題 有人知道4個點的用途嗎 perl -e 'print 1..2' # 12 perl -e 'print 1...2' # 12 perl -e 'print 1....2' # (print nothing) perl -e 'print 0....2' # 0 perl -e 'print 1.....2' # syntax error at -e line 1, near "....." 網路上查到的多半都是2點跟3點的差異 找不到4點的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.84.243 ※ 編輯: AntaresStar 來自: 111.248.84.243 (10/27 21:53)

10/28 06:25, , 1F
->[ ] 的 index 不是 list context, 而是 scalar context
10/28 06:25, 1F

10/28 06:25, , 2F
1..2 的 scalar context 解讀和 list context 不一樣
10/28 06:25, 2F

10/28 06:27, , 3F
e.g. $arr_ptr->[1,3,5] 相當於 $arr_ptr->[5], 不是
10/28 06:27, 3F

10/28 06:27, , 4F
@{$arr_ptr}[1, 3, 5]
10/28 06:27, 4F

10/28 09:28, , 5F
推 scwg 解釋(Y)
10/28 09:28, 5F

10/28 09:39, , 6F
那再推一個 xd 這個是猜的, 四個點是被拆成 0 ... .2 從 0 到
10/28 09:39, 6F

10/28 09:39, , 7F
0.2, 所以是一個 0. 1 ... .2 則是空的
10/28 09:39, 7F

10/28 09:40, , 8F
手邊沒有 perl 有編-DDEBUGGING不然應該用 -Dx 看parse tree
10/28 09:40, 8F

10/28 10:57, , 9F
哇,scwg 太強了,再推一次有關 4 個點的「猜想」
10/28 10:57, 9F

10/28 13:11, , 10F
剛剛用-10....2試了一下 0.2的猜想應該是對的
10/28 13:11, 10F

10/28 13:13, , 11F
關於第一個問題 那1..2的scalar context要怎麼解讀呢
10/28 13:13, 11F

10/28 13:17, , 12F
看來是被當成range operator了 這真是太奇怪了 XD
10/28 13:17, 12F

10/28 15:02, , 13F
是 flip-flop 正反器.. 至於實用情境嘛... (思)
10/28 15:02, 13F
文章代碼(AID): #1IRHfTTS (Perl)
文章代碼(AID): #1IRHfTTS (Perl)