51Testing软件测试论坛
标题:
ruby中nil和""、''三者的区别是什么啊
[打印本页]
作者:
chenzhong24
时间:
2011-1-24 11:28
标题:
ruby中nil和""、''三者的区别是什么啊
nil 空双引号 空单引号 三者的区别在哪里啊
作者:
haoyunlyh
时间:
2011-1-24 13:34
1、单引号和双引号。 单引号不会对里面的字符进行转义,类似于”\n”这样的转义会直接输出,也不能包含表达式。双引号则可以包含转议字符,也能包含表达式,表达式的格式为 #{xxxx}。需要注意的是,如果单引号里的字符串也包含单引号,还是要用“\’”进行转义的,这个转义是支持的。
=======================
a = “abc”
b = “1\n2\n3\n#{a}”
c = ‘1\n2\n3\n#{a}’
puts b #=> 1 2 3 abc
puts c #=> 1\n2\n3\n#{abc}
=======================
2、另外nil是一个独立的对象。好象是用来表示“null”的。
第2点不是很确认,是推出来的。
作者:
chenzhong24
时间:
2011-1-24 13:56
不是说单引号不能包含表达式 又怎么会 puts c #=> 1\n2\n3\n#{abc}
不是应该 puts c #=> 1\n2\n3\n#{a}
作者:
chenzhong24
时间:
2011-1-24 13:57
def int_vlan_conf_list1(deviceName,vlanid)
#获取交换机数据
rs = get_commands_info(deviceName,"dis vlan #{vlanid}")
#定义公用参数
vlanlist = []
#字符串处理
st = rs.index(/VID\s+Type\s+Ports/).to_i
ed = rs.index(/VID\s+Status\s+Property/).to_i
rs1 = rs[st..ed]
rs1 = rs1.split("\n")
s = ''
rs1.each{|item|
vlanid = ''
vlantype = ''
status = ''
#if /(\d+)\s+(\w+)\s+(enable|disable)\s+default/i.match(item) && $1 !=nil
if item == ""
next
end
if /(\d+)\s+(\w+)\s*/.match(item)
vlanid = $1
vlantype = $2
end
if vlanid == ""
next
end
rs.each_line{|item2|
if /(#{vlanid})\s+(enable|disable)\s+default/i.match(item2)
status = $2
end
}
ds = get_commands_info(deviceName,"vlan #{vlanid}
dis th")
if /description\s+(\S+)/mi.match(ds)
description = $1
end
if description == nil
description = "VLAN" + change_vlanid(vlanid)
end
list = "接口列表"
s = vlanid+vlantype+"Vlan"+status+description+list
vlanlist << s
}
#返回数据
return vlanlist
end
作者:
chenzhong24
时间:
2011-1-24 13:57
本帖最后由 chenzhong24 于 2011-1-24 13:59 编辑
看看偶写的脚本,^_^
作者:
haoyunlyh
时间:
2011-1-24 14:08
[quote]不是说单引号不能包含表达式 又怎么会 puts c #=> 1\n2\n3\n#{abc}
不是应该 puts c ...
chenzhong24 发表于 2011-1-24 13:56
你是对的,表达式,不会被展示出来。#=> 1\n2\n3\n#{a}
作者:
haoyunlyh
时间:
2011-1-24 14:12
Ruby nil的意思实际上是null的意思,当我们选取某个对象的属性时,首先要判断的就是对象是否为nil,就是是否为null。为nil,则不取其值。
a!=nil 不为空
a!='' 不为空字符串
a!="" 也是不为空字符串。
至于单引号和双引号,看上面的解释。
另外你的脚本太多,没时间去看!
作者:
chenzhong24
时间:
2011-1-24 14:14
作者:
fyydhsw
时间:
2011-4-26 07:31
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2