userdata是lua提供給開發者自定義c/c++資料結構的一套api,他能夠在c/c++層對映記憶體空間,使我們的程式能夠更加的靈活。下面我就來介紹一下userdata是如何繫結c/c++物件的。
首先定義建構函式如下
}之後我們要給他定義乙個gc函式,好讓lua虛擬機器自動**記憶體
static int __gc
(lua_state*l)
return0;
}
我們再給他定義乙個列印函式,驗證userdata是否建立成功
static int print
(lua_state *l)
return0;
}
最後我們要講自定義的userdata註冊到lua虛擬機器中
於是乎我們就可以在lua中使用自定義的userdata了
lua自定義排序
說一下lua的table庫中比較常用的排序函式 table.sort 第乙個引數代表要進行排序的table,第二個引數是可選的,如果沒有第二個引數,那麼這個函式就會將table元素從小到大進行排序,我主要來說一下第二個引數。第二個引數是函式型別,這個函式接收兩個table元素,如果希望第乙個引數在排...
lua自定義排序函式
說一下lua的table庫中比較常用的排序函式 table.sort 第乙個引數代表要進行排序的table,第二個引數是可選的,如果沒有第二個引數,那麼這個函式就會將table元素從小到大進行排序,我主要來說一下第二個引數。第二個引數是函式型別,這個函式接收兩個table元素,如果希望第乙個引數在排...
redis自定義lua指令碼
redis底層是用c語言寫的。執行的redis命令底層是呼叫的對應的lua指令碼。下面是跟著james老師通過做自定義lua指令碼,實現限流的功能。指令碼實現的功能是 在3秒內不超過2個連線。1 lua編譯器安裝 2 lua指令碼編寫 我是在redis安裝目錄 usr local soft redi...