Lua中的函数式编程

最近在用Lua实现Websocket协议时,碰到了一个直击我的思维惯性的弱点的Bug。代码大约如下(实际实现较为复杂,比如还支持wss协议,因此定位到问题也着实花费了一些功夫,毕竟GC的执行是异步的.): [lua] –websocket.lua local M = {} local mt = { __index = M, __gc = function(sock) close_via_c_layer(sock[1]) end} function M:connect(url) local ip,port = parse from url local fd = connect_via_c_layer(ip,port); local sock = setmetatable({fd}, mt) return so……