• 初心者のためのLua言語チュートリアル

    I. 序文 Luaは、標準C言語で書かれた軽量かつ小規模なスクリプト言語で、オープンソースです。アプリケーションに組み込むことで、拡張やカスタマイズを柔軟に行うことができるように設計されています。 Luaは、ゲーム開発、スタンドアローンアプリケーションのスクリプト、Webアプリケーションのスクリプト、拡張機能やデータベースプラグイン、セキュリティシステムなどのシーンで使用する

    2022-01-06 19:58:44
  • luaとcの相互作用について簡単に説明します。

    はじめに luaとcの親密度は仮想スタックに依存しています。luaはこの仮想スタックを使用してcとの間で値を受け渡しします。スタックの各要素はluaの値(nil, number, string...)です。 luaがc関数を呼び出すと、c関数自身のスタックからもlua自身のスタックからも独立した、新しいスタックを取得します。このスタックには、luaがc関数に渡したい全ての引数が格

    2022-01-06 19:33:52
  • lua基本チュートリアル

    最近luaを見ていて、最新版の例がないのが気になったので、他の人のブログからソースコードをもらってきて、lua C APIの最新版に変更しました。 まずは、luaの超基本には触れずに、簡単なテストから始めてみましょう。 その前に、Win32でluaの環境がない場合は、以下のサイトを参照してください。 https://www.jb51.net/article/61451.htm

    2022-01-06 17:54:52
  • LinuxシステムへのNginx Lua環境のインストール

    また、以下の公式インストールガイドもご参照ください。 lua-nginx-module のインストール 参考までに私のインストール方法をまとめておきます。 最新版のNginx、LuaJIT、ngx_devel_kit、lua-nginx-module、およびその他のインストールファイルが必要です。 Nginx /{br LuaJIT LuaでもLuaJITでも可能ですが、パフォーマンス

    2022-01-06 16:13:25
  • OpenRestyの2つの正規パターンマッチの方法を解説

    プリアンブル この記事では、OpenRestyの2種類の正規パターンマッチを紹介します。 まず最初に、OpenRestyスイートには、主にFFI APIの実装に基づいたOpenRestyの構文と、ネイティブのLua系スクリプト言語用の構文の2つがあることに注意する必要があります。 この記事では、この2つの構文の正規のパターン・マッチングを、それぞれngx.re.find

    2022-01-06 16:11:22
  • カスタムCモジュールへのLuaコール

    これはLuaプログラミングでも紹介されていますが、Luaの初心者がうまく実行するには、実はそんなに簡単なことではありません。ダイナミックリンクライブラリのsoファイルを生成する方法です。Lua 5.2では、エクスポート関数がLuaL_registerからLuaL_newlibに変更されました。詳細は後述します。ここでのモジュール名はhello_libで、Luaインタープリタは対応するモジュールを

    2022-01-06 14:50:32
  • C++でLuaの設定ファイルやレスポンス関数を呼び出す例

    Luaはスクリプト言語であり、コンパイルが不要で軽快に動作することが最大の特徴です。C言語のフレームワークを書いたら、Luaで対応する処理を変更することで機能を変更でき、再コンパイルする必要がありません。以下は、Luaのリソース・メソッドをC言語で呼び出すサンプル・プログラムです。 C++側です。 // Lua1.cpp : Defines the entry point for th

    2022-01-06 14:45:42
  • Luaゲーム開発チュートリアル - タイムゾーンの問題

    前置き Luaとは何ですか? Luaは、1993年にブラジルのリオデジャネイロ・カトリック大学の研究グループが開発した小規模なスクリプト言語で、アプリケーションに組み込んで拡張やカスタマイズを柔軟に行えるように設計されています。Luaは標準C言語で書かれており、ほぼ全てのOSやプラットフォームでコンパイル、実行することができます。Luaの完全なインタプリタはわずか200k

    2022-01-06 14:41:33
  • Luaにおけるpairsとipairsの違いのまとめ

    プリアンブル 最近、私は nginx_lua_module モジュールを使って、Header, Body, Cookieに比例してトラフィックを別の場所に転送するようなものを書いています。前のコードを読んだら、ループの中にはpairsを使うものとipairsを使うものがあって、とても混乱した。良い点は、Luaの公式サイトに電子版で Luaでプログラミング 学

    2022-01-06 14:22:06
  • Lua関数使用研究

    での Lua基本構文クイックスタート Luaでは関数の使い方が取り上げられていますが、一般的な応用にとどまっているので、深く勉強していません。  I. 関数と変数の使用法 関数は、キーワード function で定義します。そして、関数名と変数を追加します。その後にdo.がなく、endで終わることに注意してください。 関数内の変数はデフォルトではグローバル変

    2022-01-06 13:29:36
  • Luaの基本的なデータ型、式、フロー制御ステートメント

    1. Luaの型 1.1 基本型 {Lua は動的型付け言語であり、型定義の構文はない。 Luaは動的型付け言語で、型定義のシンタックスはありません。Luaにはnil、boolean、number、string、userdata、function、thread、tableの8つの基本型が存在します。 関数型は、値をもとにその型名(文字列)を返すことができます。例えば、print(type(p

    2022-01-06 11:58:53
  • luaのクロージャとテーブルや関数のいくつかの表現を理解する。

    しばらく前、lua言語を勉強していたとき、lua中国語チュートリアルを読んでいて、クロージャの項を何度か読みましたが、クロージャの概念はまだ曖昧で、何のことだかはっきり理解することが出来ませんでした 最近、仕事があまり忙しくなかったので、独学でluaの知識を身につけたのですが、2時間以上読んで初めて、クロージャという問題に遭遇しました。まあ、初めて見たときはcloseとか関係あるのかと思っ

    2022-01-06 10:35:52
  • Luaプログラミングの例(VIII)。生産者・消費者問題

    この問題は古典的なもので、基本的にどの言語もマルチスレッドに関わりますが、Luaがここまで複雑だとは思いませんでした。   理解するのに時間がかかったので、ロジック図です。    最初にコンシューマが呼ばれ、コンシューマが値を必要とするときにプロデューサーが呼ばれ、プロデューサーは値を生成し、コンシューマが再び要求するまで停止する。消費者主導で設計

    2022-01-06 09:31:30
  • Luaファイル操作の説明

    I/Oライブラリは、ファイルを操作するための2つの異なる方法を提供します。 ioテーブル呼び出しメソッド ioテーブルを使用すると、io.openは指定されたファイルの説明を返し、すべての操作はこのファイルの説明を中心に行われます。ioテーブルは、3つの定義済みファイルの説明io.stdin、io.stdout、io.stderrも提供します。 ファイルハンドル直接呼出し方

    2022-01-06 08:37:20
  • LUAスクリプトを実行するためのphpredisサンプルコード

    プリアンブル この記事では、LUAスクリプトのphpredis実行について紹介します。参考と勉強のために共有してください。 コード例 $lua = <<<EOT local kws = {} local lrkws = {} local nkws = {} local kw_ids = {} local lr_ids = {}

    2022-01-06 07:21:21
  • .soファイルを呼び出すためのNginx+lua

    本サービスでは、携帯電話から渡されたビーコンデバイスリストをもとに、特定のショッピングモールをあるアルゴリズムに従って算出し、モールIDとビーコンデバイスリストをパラメータとして、.soファイル内の計算メソッドを呼び出して位置データ(座標:x、y、z)を導き出し、携帯電話に返送するものです。 このサービスはQPSの要求が高く、純粋なクエリ操作であるため、(社内で主流となり成熟している)Ng

    2022-01-06 05:41:50
  • LuaテーブルからC#辞書への変換例

    テーブル機能 文字列の場合、引用符と括弧を削除することができます。つまり、[]で囲まれていない場合、インデックスは文字列であるとみなされます。 は、テーブルのデフォルトの初期インデックスが一般に1から始まり、インデックスが書かれていない場合は、インデックスが数字であるとみなされ、1以降に自動的に順番に番号が振られます。 テーブルの変数は単なるアドレス参照であり、テーブル操作に対するデータ的な

    2022-01-06 04:43:54
  • Luaの変数の種類と文のまとめ

    1. Luaの型 1.1 基本型 {Lua は動的型付け言語であり、型定義の構文はない。 Luaは動的型付け言語で、型定義のシンタックスはありません。Luaにはnil、boolean、number、string、userdata、function、thread、tableの8つの基本型が存在します。 関数型は、値をもとにその型名(文字列)を返すことができます。例えば、print(type(p

    2022-01-06 04:18:16
  • Luaにおけるグローバル環境、パッケージ、モジュール構成のパース処理

    モジュールとはライブラリのことで、パッケージとはモジュールの集合体のことで、Luaでモジュールを要求し、テーブルを表すグローバル変数を取得することで読み込むことができる。この記事では、まず環境に関する実用的なテクニックを紹介し、次にモジュールの参照方法と基本的な書き方を説明します。 1. 環境について Luaは環境テーブルをグローバル変数_Gに保持し、アクセス・設定することができます

    2022-01-06 04:04:15
  • Luaで学ぶ関数とオブジェクト指向の基本

    関数 1. 基本的なこと 関数の呼び出しは、引数がない場合でもすべて括弧を書く必要がありますが、1つだけ特別な例外があります。引数が1つだけで、引数がリテラル文字列またはテーブルコンストラクタである関数は、括弧があってもなくても構いません。たとえば dofile 'a.lua', f{x=10, y=20}のようになります。 Luaでは、コロン演算子を使ったオブジェクト指向の呼び出しに特別な

    2022-01-06 02:39:14