入門Luaプログラミング第1章 はじめの一歩

入門Luaプログラミング

入門Luaプログラミング

この本を買ったものの読まずに積みっぱなしでしたが、Luaを実行できる環境を作ったので、せっかくですし時間のある時に1章ずつでも進めて記録を残して行こうかと。さあいってみよー。

文字列

文字列リテラルの表記について。3つ登場しますが、3つ目だけはあまり馴染みがない表記です。


おなじみシングルクォートでの文字列リテラル

> print('"double quote"')
"double quote"
> print('C:\\Users\\')
C:\Users\
> print('line\nfeed')
line
feed


こちらもおなじみダブルクォートでの文字列リテラル

> print("'single quote'")
'single quote'
> print("C:\\Documents and Settings\\")
C:\Documents and Settings\
> print("line\nfeed")
line
feed


あまりなじみのない角括弧での文字列リテラル。今まで大括弧と読んでましたが、あまり望ましくない読み方のようで……

> print([["double quote" + 'single quote']])
"double quote" + 'single quote'
> print([[C:\WINDOWS\]])
C:\WINDOWS\
> print([[line\nfeed]])
line\nfeed
> print([[
>>   hear
>>   docu
>>   ment ?]])
  hear
  docu
  ment ?

コメント

コメントの表記について。1行コメントと複数行コメントがあります。


1行コメントの表記です。

> -- 1行コメントだよ
> -- コメントコメント

SQLもこの表記だったような気がします。


続いて複数行コメントの表記です。

> --[[
>> 複数行コメントだよ
>> コメントコメント
>> ]]--

忘れてしまいそうな表記ですねえ……


本には

--[[
]]--

と書いてありますが

--[[
]]

でいいようです。

ブロック

Luaでは

a = 1

のようなものを文と読び、これの集まりをブロックと呼びます。
Luaでは改行も空白も同じものとみなすので、

a = 1 b = 2

という変態的な記述ができます。これは、以下の2つと等価です。

a = 1
b = 2
a = 1; b = 2;

まあ、普通に書くとしたら後者2つのどちらかでしょうか……

テーブル

いわゆるハッシュや連想配列のようなもの…でしょうか。(というかそのもの?)
テーブルの表記は以下のようにします。中括弧…じゃなかった、波括弧で囲むあたりが少しだけJavaScriptに似てなくもないでしょうか。

> chrome = {
>>   javascriptEngine = "V8",
>>   renderingEngine = "WebKit",
>>   vendor = "Google"
>> }

テーブル内の項目は変数でなくフィールドと呼び、フィールドへは"."を使ってアクセスします。

> print(chrome.javascriptEngine)
V8
> print(chrome.renderingEngine)
WebKit
> print(chrome.vendor)
Google

構造体やレコード型の変数のメンバにアクセスする感じでしょうか。


以上、入門Luaプログラミング第1章でした。