1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
class C
def foo
@x = 1
p defined? @x
@y = nil
p defined? @y
p defined? @z
@@y = 1
p defined? @@y
@@y = nil
p defined? @@y
p defined? @@z
end
end
puts 1
p defined? C
puts 2
C.new.foo
puts 3
x1 = 1
1.times {|x2|
p defined? x1
p defined? x2
}
puts 4
p defined? 1
puts 5
p defined? dummy
puts 6
p defined? puts
puts 7
p defined? String
"123" =~ /(1)/
puts 8
p defined? $HELLO
p defined? $-
p defined? $-a
p defined? $-x
p defined? $!
p defined? $@
p defined? $:
p defined? $;
p defined? $"
p defined? $,
p defined? $;
p defined? $/
p defined? $\
p defined? $*
p defined? $$
p defined? $?
p defined? $=
p defined? $:
p defined? $"
p defined? $<
p defined? $>
p defined? $.
p defined? $0
p defined? $~
p defined? $&
p defined? $`
p defined? $'
p defined? $+
p defined? $1
puts 9
p defined? Math::PI
puts 10
p defined? a = 1
p defined? a += 1 #assignment
p defined?(a &&= 1) #expression
puts 11
p defined? a
puts 12
p defined? 42.times
p defined? Kernel::puts
puts 13
p defined? 1 + foo
p defined? def foo; end
p defined? lambda {}
puts 14
p (s = defined? :foo)
p (t = defined? :bar)
p s.object_id == t.object_id
puts 15
p defined? nil
p defined? true
p defined? false
p defined? self
Q = nil
puts 16
p defined? P
p defined? Q
=begin
TODO: super is complicated - define_method, etc.
puts 17
class C
def f
p defined? super
end
end
class D < C
def f
p defined? super
super
end
end
D.new.f
=end
puts 18
def g
p defined? yield
end
g
g {}
puts 19
undef g
undef g rescue p $!
p defined? g
|