在 Ruby 中,我开始将 Structs 视为“struct-flavored classes”,将 lambdas 视为“lambda-flavored procs”。这些区别有更正确的术语吗?
为了说明我的意思:
p = proc { |text| puts text }
p.inspect
#=> #<Proc:0x007fd9c135fd98@(irb):5>
# vs
l = lambda { puts 'foo' }
l.inspect #=> "#<Proc:0x007fbf33ad2830@(irb):7 (lambda)>"
...同样:
Point = Class.new
Point.class #=> Class
p = Point.new
p.class #=> Point
p.inspect #=> #<Point:0x007fd9c1038ef8>
# vs
Point = Struct.new(:x, :y)
Point.class #=> Class
p = Point.new
p.class #=> Point
p.inspect #=> "#<struct Point x=nil, y=nil>"