とらりもんHOME  Index  Search  Changes  Login

とらりもん - lua Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

書きかけです。

{{toc}}

! インストール
sudo apt install lua5.3

vim .zshrc
alias lua="lua5.3"

! How to use for bash user
lua interpriterのコマンドは”>”、bashコマンドラインのコマンドは”$”で表す。

!! bash/shと同じように、スクリプトとして使いたい場合
shebang(1行目)を書かないと、chmodで権限を与えても実行時エラーになる。

vim hello.lua

#!/usr/bin/env lua5.3
print("Hello World")

$ chmod +x hello.lua
$ ./hello.lua
Hello World

!! ライブラリの読み込み
lua
> dofile("some_lib.lua")



!! コマンドライン上で実行
-eをつけるとコマンドライン上で実行。
$ lua -e "x=10; print(x)"
10
$

更に-iをつけるとコマンドライン上で実行し、その後luaインタープリタに入る。
$ lua -i -e "x=10; print(x)"
Lua 5.3.1  Copyright (C) 1994-2015 Lua.org, PUC-Rio
10
>
> x
10

! 仕様
!! 変数の扱い
ある関数を定義した時に、関数内の変数をローカル変数にしておかないとグローバル変数を参照する。[[参考|http://www.geocities.jp/m_hiroi/light/lua02.html]]

> function foo(x) print(x); print(y) end
> x=10; y=20
> foo(100)
100
20 <- グローバル変数を参照している
> foo()
nil
20

ローカル変数を宣言すれば、グローバル変数を参照しない。
> function foo(x) local y=0 print(x); print(y) end
> x=10; y=20; foo(100)
100
0  <- ローカル変数を参照している
> y
20 <- グローバル変数は変化していない

!! 再代入性
何でも入る。関数は[[第一級オブジェクト|https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88]]
lua
> a
nil
> a = 10
>a
10
> a ="String!"
a
String
> a = print
> a("Hello World")
"Hello World")

!! 文字列の結合
".."を使う
>"10" +1
11
> 10 .. 1
101
>"10" .. "1"
101
! 参考

*[[Programming in Lua|https://www.lua.org/pil/contents.html]]
*[[お気楽 Lua プログラミング超入門|http://www.geocities.jp/m_hiroi/light/lua.html]]