blog

例で学ぶLua言語(4) - 関数呼び出し

例e09で述べた設定メソッドが使える場所を考えてください。...

May 1, 2025 · 2 min. read
シェア

1.不確定パラメータ

例 e07.lua

   -- Functions can take a 
-- variable number of 
-- arguments. 
function funky_print (...)   
for i=1, arg.n do   
print("FuNkY: " .. arg[i])   
  終わり   end   
funky_print("one", "two") 

走行結果

FuNkY: 1つ

FuNkY: 2つ

手続きの説明

* をパラメータとして取る場合は、パラメータの数が可変であることを意味します。を引数に取る場合は、引数の数が不定であることを意味します。

* パラメータは自動的に arg というテーブルに格納されます。

* arg.n は引数の数を表します。 添え字付きの arg[] は、すべての引数を反復処理します。

2.パラメータとしてのテーブル

例 e08.lua

-- Functions with table 
  -- parameters 
  function   印刷する_contents(t) 
  for k,v in t do 
    print(k .. "=" .. v) 
    終わり 
    終わり 
  print_contents{x=10, y=20} 

走行結果

x=10

y=20

手続きの説明

* print_contents{x=10, y=20}は括弧で囲まれていません。

* for k,v in t do このステートメントは、テーブル内のすべての値を反復処理します。

3.LuaのXMLライクなデータ記述言語化

例 e09.lua

        function   コンタクト(t)   
-- add the contact ‘t’, which is   
-- stored as a table, to a database   
end   
contact {     名前 = "Game Developer",   
email = "hack@ogdev.net",   
url = "http://..net",   
quote = [[   There are   
10 types of people   
who can understand binary.]]   
}   contact {   -- some other contact   } 

手続きの説明

* 関数とテーブルを組み合わせることで、LuaはXMLのようなデータ記述言語になります。

* e09 contact{...}は、関数を呼び出すメソッドです。は関数を呼び出すメソッドです。

* [[...]]は複数行の文字列を表現するためのメソッドです

* このアプローチの利点は、C APIを使用する場合に顕著です。セクションを別の設定ファイルに保存することができます。

4.お試しください。

例e09で述べた設定方法が使える場所を考えてみてください。

Read next

ネットワーク・ケーブル管理の損傷を防ぐには?

では、データセンターの改築やアップグレードの際に、通常運用中であってもネットワークケーブルの損傷を防ぐにはどうすればよいのでしょうか。

Apr 18, 2025 · 1 min read

Nginx Httpcde分析スクリプト

Mar 27, 2025 · 31 min read

生きる術

May 28, 2024 · 3 min read

RedisとElasticsearchの統合

May 23, 2024 · 6 min read