作者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