helloworlds

We should seek the greatest value of our action. 基礎をコツコツ (文系エンジニア)

Luaをサクッと

Luaという拡張プログラミング言語を知ったので、とりあえずどんな書き方するのかなと思い まずサクッとLuaを動く環境を作成。 ※本当にただ動かすだけですww

Luaとは

オブジェクト指向プログラミング、関数型プログラミング、データ駆動型プログラミングもサポートしている。 拡張言語であるため、Luaは「メイン」プログラムを持たない。 ホストクライアント (エンベッディングプログラム、あるいは単にホスト とも呼ぶ) に 組み込まれて 動くだけである。

ふむふむ。軽量で高速でC言語のホストプログラムに組み込まれる目的なわけか〜。 文法的で面白いのは、関数を変数として扱えるのか〜、ふむふむ。

まあとりあえずで、

環境: macOS

Luaをインストール&ヴァージョン確認

$ brew install lua
$ lua -v
Lua 5.3.4  Copyright (C) 1994-2017 Lua.org, PUC-Rio

LuaRocksをインストール

LuaRocksは、パッケージマネージャの1つ。 インストールした後、ホームディレクトリにモジュール等がインストールされるディレクトリを作成。

$ brew install luarocks
$ mkdir ~/.luarocks

ライブラリをインストール

CJSON: JSONを扱うライブラリである LuaFileSystem: ファイルシステムを扱う

$ luarocks install --local lua-cjson
$ luarocks install --local luafilesystem

test.luaを作成

local json = require 'cjson'
local lfs = require 'lfs'
local doc_path = "./"
local result
local file
local text
local val
for filename in lfs.dir(doc_path) do
    result =  string.find(filename,"^.*json$")
    if result ~= nill then
        file = io.open(filename,"r");
        io.input(file);
        text = io.read()
        val = json.decode(text)
        io.close(file)
    end
end

print("from JSON File...." ..val.sample)

helloworld.jsonを作成

{ "sample":"Hello World!!!!"}

実行

$ lua ./test.lua

構成はこんなかんじになった(当たり前だけどw)

├── bin
│   ├── json2lua
│   └── lua2json
├── helloworld.json
├── lib
│   ├── lua
│   │   └── 5.3
│   └── luarocks
│       └── rocks-5.3
├── share
│   └── lua
│       └── 5.3
└── test.lua

出力

from JSON File....Hello World!!!!

参考: http://milkpot.sakura.ne.jp/lua/lua51_manual_ja.html#1 https://dev.classmethod.jp/server-side/language/installation_of_lua/