我很担心$
变量在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
等的含义是什么?
答案 0 :(得分:4)
那些持有最后一个正则表达式匹配的部分。 $&
:匹配的子字符串$'
:匹配后的子字符串$1
:匹配的第一个捕获的子字符串。