入門Luaプログラミング第3章 部品を作ろう
昨日に続いて今夜は第3章を。関数、ローカル変数、文字列などの章です。
関数宣言
関数は"function 〜 end"で宣言し、値は"return"で返します。returnはC言語などと同じく、その場で関数を抜けます。
> function times(op1, op2) >> return op1 * op2 >> end > print(times(1, 2)) 2
上記の構文は実は"関数名 = function (引数) end"のシンタックスシュガーらしいですが……
> minus = function (op1, op2) >> return op1 - op2 >> end > print(minus(2, 1)) 1
ローカル変数
ローカル変数は"local 変数名"で宣言します。localを先頭に付けずに宣言した場合、グローバル変数になるので以下のような記述をすると
> function hoge() >> if (value == nil) then >> value = 1 >> end >> print(value) >> end > hoge() 1 > value = 1000 > hoge() 1000
関数内で宣言したとしてもグローバル変数になります…… ああ恐ろしい。
localを付けて宣言した場合は
> function moge() >> local a, b >> a = 1 >> b = 2 >> print(a) >> print(b) >> end > moge() 1 2 > a = 3 > b = 4 > moge() 1 2 > print(a) 3 > print(b) 4
値が書き換えられたりすることはなくなります。
文字列の連結
文字列の連結は"+"ではなく".."を使います。
> print("え" .. "び") えび > str1 = "ls" > str2 = " -la" > print(str1 .. str2) ls -la
第3章はほかに文字列ライブラリの関数について書いてあるのですが…… (string.formatなど)
…まあ、必要なときにドキュメントを読めばいいので今はスルーで。
以上、入門Luaプログラミング第3章でした。