関数
プロトコル動作コールバック関数
Function client on_data (ctxt, payload)
//.code
end
-
ctxt -TCPクライアント処理コンテキスト
-
payload :イベントペイロード
-
payload.d ata-受信したTCPデータ。バイトストリームとして利用できます。
-
ポリシー拡張関数
function self-type:function-name(parameter1: parameter1-type, etc.): return-type
statements
end
where,
the types are NSTEXT, NSNUM, NSBOOL, or NSDOUBLE.
function NSTEXT:COMBINE_HEADERS() : NSTEXT
HTTP.REQ.FULL_HEADER.AFTER_STR("HTTP/1.1rn").COMBINE_HEADERS()
ローカル関数定義
local function function-name(parameter1-name, parameter2-name, etc.)
statements
end
関数本体と戻り値
return -- returns nil
return expression -- one return value
return expression1, expression2, ... -- multiple return values
local function fsum(a)
local sum = 0
for i = 1, #a do
sum = sum + a[i]
end
return sum
end
local function fsum_and_average(a)
local sum = 0
for i = 1, #a do
sum = sum + a[i]
end
return sum, sum/#a
end
関数呼び出し
function f(p1, p2) -- p2 is optional
p2 = p2 or 0 -- if p2 is nil, set to a default of 0
. . .
end
local my_array = {1, 2, 3, 4}
local my_sum, my_ave = sum_and_average(my_array)
反復子関数と汎用forループ
for variable in iterator(parameter1, parameter2, etc.) do
statements in the for loop body
end
local t = {k1 = "v1", k2 = "v2", k3 = "v3"}
local a = {} -- array to accumulate key-value pairs
local n = 0 -- number of key-value pairs
for key, value in pairs(t) do
n = n + 1
a[n] = key .. " = " .. value -- add key-value pair to the array
end
local s = table.concat(a, "; ") -- concatenate all key-value pairs into one string