我对$
变量在这部分 EventMachine 代码中的工作方式感到困惑(strip_op
是一种String#sub
方法):
def receive_data(data)
@buf = @buf ? @buf << data : data
while (@buf && !@closing)
case @parse_state
when AWAITING_CONTROL_LINE
case @buf
when PUB_OP
ctrace('PUB OP', strip_op($&)) if NATSD::Server.trace_flag?
return connect_auth_timeout if @auth_pending
@buf = $'
@parse_state = AWAITING_MSG_PAYLOAD
@msg_sub, @msg_reply, @msg_size = $1, $3, $4.to_i
$&
, $'
,等的含义是什么$1
?