作者AntaresStar ()
看板Perl
標題[問題] 點點(..)運算子兩問
時間Sun Oct 27 21:51:23 2013
對一個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)
1F:推 scwg: ->[ ] 的 index 不是 list context, 而是 scalar context 10/28 06:25
2F:→ scwg: 1..2 的 scalar context 解讀和 list context 不一樣 10/28 06:25
3F:→ scwg: e.g. $arr_ptr->[1,3,5] 相當於 $arr_ptr->[5], 不是 10/28 06:27
4F:→ scwg: @{$arr_ptr}[1, 3, 5] 10/28 06:27
5F:推 cutekid:推 scwg 解釋(Y) 10/28 09:28
6F:→ scwg:那再推一個 xd 這個是猜的, 四個點是被拆成 0 ... .2 從 0 到 10/28 09:39
7F:→ scwg: 0.2, 所以是一個 0. 1 ... .2 則是空的 10/28 09:39
8F:→ scwg: 手邊沒有 perl 有編-DDEBUGGING不然應該用 -Dx 看parse tree 10/28 09:40
9F:推 cutekid:哇,scwg 太強了,再推一次有關 4 個點的「猜想」 10/28 10:57
10F:→ AntaresStar:剛剛用-10....2試了一下 0.2的猜想應該是對的 10/28 13:11
11F:→ AntaresStar:關於第一個問題 那1..2的scalar context要怎麼解讀呢 10/28 13:13
12F:→ AntaresStar:看來是被當成range operator了 這真是太奇怪了 XD 10/28 13:17
13F:推 CindyLinz:是 flip-flop 正反器.. 至於實用情境嘛... (思) 10/28 15:02