论坛首页 编程语言技术论坛

关于数组用[]和%w{}相同说法的一点疑问

浏览 3323 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-14  
$name="give you ge suprise!"
arr=[$name,1,nil,"lll"]
puts arr
puts arr.size
puts arr[2]==arr[100]
################################
#give you ge suprise!
#1
#nil
#lll
#4
#true
################################
puts '---------------------------'
arr3=%w{$name 1 nil "lll"}
puts arr3
puts arr3.size
puts arr3[2]==arr3[100]
################################
#$name  -好像他把$name当成了一个字符串, 当我将$name换成#$name时输出#$name
#1
#nil
#"lll"  -why?
#4
#false  -这里不明白,nil和nil还有区别呀?
################################
   发表时间:2007-04-14  
arr3[2].class =>String
0 请登录后投票
   发表时间:2007-04-14  
dennis_zane 写道
arr3[2].class =>String
太神奇了!
用UE是arr3[2].class ==>String
      arr3[100].class ==> NilClass
用irb结果就为true 都是NilClass
0 请登录后投票
   发表时间:2007-04-15  
yoyozizou 写道
dennis_zane 写道
arr3[2].class =>String
太神奇了!
用UE是arr3[2].class ==>String
      arr3[100].class ==> NilClass
用irb结果就为true 都是NilClass


怎么会是true?你真的试了吗?
arr3[2].class=>String
0 请登录后投票
   发表时间:2007-04-15  
用 'p' 这个函数看起来更清楚。
p %w{$name 1 nil "lll"}
=>["$name", "1", "nil", "\"lll\""]

%w 是把{}里面的东西都当字符串的。
0 请登录后投票
   发表时间:2007-04-15  
dennis_zane 写道
yoyozizou 写道
dennis_zane 写道
arr3[2].class =>String
太神奇了!
用UE是arr3[2].class ==>String
      arr3[100].class ==> NilClass
用irb结果就为true 都是NilClass


怎么会是true?你真的试了吗?
arr3[2].class=>String

汗,是我马虎了 %w{$name 1 nill 'lll'} 写成了 %w{$name,1,nill,'lll'}
谢谢楼上两位不计较问题的弱智性
0 请登录后投票
   发表时间:2007-04-15  
该死该死!没说清楚:
“用UE是arr3[2].class ==>String
       arr3[100].class ==> NilClass”这是开头的写法
“用irb结果就为true 都是NilClass”这是重打时笔误(多加了几个“逗号“)的结果
  这时它把整体”#{$name},1,nil,"lll"“当成了一个元素,那arr[2..无穷]铁定是Nil了
唉,irb功能如果能粘贴就好了(大家不要学我,呵呵 )
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics