ruby 如何打开auto flush?
现在碰到了问题,写了一个类,两次调用这个类,提供不同的参数,返回的结果都一样。正常来说应该返回不同的结果。这个如何处理? 把代码放出来吧?看看你的构造方法。 #!/usr/bin/ruby
require 'rubygems'
require 'dnsruby'
class Dig
@@hb_key_name = 'aaa'
@@hb_key = 'adfasdfadsfasdfasdgasdgasdg=='
@@hn_key_name = 'bbb'
@@hn_key = 'adgadfasdfadgadgasdfga=='
@@other_key_name = 'ccc'
@@other_key = 'agadgasdgasdfasdfasdfadf=='
@@local_nameserver = '192.168.1.100'
def initialize(domain,type,nameserver)
@domain = domain
@type = type
@nameserver = nameserver
end
def huabei
if @nameserver.nil?
res = Dnsruby::Resolver.new({:nameserver => @@local_nameserver})
else
res = Dnsruby::Resolver.new({:nameserver => @nameserver})
res.tsig=@@hb_key_name, @@hb_key
end
a = res.query(@domain, @type)
puts a
end
def huanan
if @nameserver.nil?
res = Dnsruby::Resolver.new({:nameserver => @@local_nameserver})
else
res = Dnsruby::Resolver.new({:nameserver => @nameserver})
res.tsig=@@hn_key_name, @@hn_key
end
a = res.query(@domain, @type)
puts a
end
def other
if @nameserver.nil?
res = Dnsruby::Resolver.new({:nameserver => @@local_nameserver})
else
res = Dnsruby::Resolver.new({:nameserver => @nameserver})
res.tsig=@@other_key_name, @@other_key
end
a = res.query(@domain, @type)
puts a
end
def local
res = Dnsruby::Resolver.new({:nameserver => @@local_nameserver})
if @type.nil?
a = res.query(@domain, "A")
else
a = res.query(@domain, @type)
end
puts a
end
end
调用在哪里呢??? 你定义了很多类变量,注意类变量是所有父类以及子类共享的。 调用很简单,就是提供了不同的两个参数。。。。结果总是得到第一次调用的结果。。。
这个两次调用在同一个文件里面。 类变量应该不影响参数传递。 你怎调用的?你的描述,感觉没描述到点子上呢。
页:
[1]