3

Lua で文字列の独自の長さメソッドを実装しようとしています。文字列の len() メソッドのオーバーライドに成功しましたが、# 演算子に対してこれを行う方法がわかりません。

orig_len = string.len
function my_len(s)
  print(s)
  return orig_len(s)
end

string.len = my_len
abc = 'abc'

私が電話した場合:

print(abc:len())

以下を出力します。

abc
3

しかし

print(#abc)

「3」のみを出力します。これは、私の代わりに元の長さ関数を呼び出したことを意味します。# の長さ関数を呼び出す方法はありますか?

4

2 に答える 2