有没有办法"打开"使用Proc.new或实例化的Proc的严格的arity强制执行Kernel.proc,以便它的行为类似于Proc实例化的lambda?
My initialize method takes a block &action and assigns it to an instance variable. I want action to strictly enforce arity, so when I apply arguments to it later on, it raises an ArgumentError that I can rescue and raise a more meaningful exception. Basically:
class Command
attr_reader :name, :action
def initialize(name, &action)
@name = name
@action = action
end
def perform(*args)
begin
action.call(*args)
rescue ArgumentError
raise(WrongArity.new(args.size))
end
end
end
class WrongArity < …Run Code Online (Sandbox Code Playgroud) 有没有办法unlet在当前的Vim会话中定义所有变量?您可以使用重置所有设置set all&,但我找不到变量的等效项.
我试过了:
:let vars = g:
:for var in keys(vars)
: unlet var
:endfor
Run Code Online (Sandbox Code Playgroud)
但是当我:let g:,所有变量仍然存在.