コース概要

Lua の紹介

  • ちょっとした歴史
  • Lua の目標、特徴、および目標以外
  • Lua のドキュメントとチュートリアルのリソース
  • Lua インタープリタのインストール
  • LuaRocksのセットアップと使用

基本的な構文とセマンティクス

  • 識別子
  • コメント、コメントをブロック
  • グローバル変数と厳密性の強制
  • ローカル変数
  • スタンドアロン プログラム、プログラム引数
  • コンパイル単位、チャンク、式、セミコロン

データ型とデータ構造

  • 基本型: nil、ブール値、数値、文字列
  • オブジェクトタイプ: 関数、ユーザーデータ、スレッド、テーブル
  • 参照/オブジェクトと基本値の比較
  • Lua のテーブルの重要性

テーブルとその多用途性の紹介

  • 連想配列としてのテーブル
  • 数値配列、シーケンスとしてのテーブル

基本的な制御構造

  • if then elseif else 終了
  • while ループ
  • リピートループ
  • 単純な for ループ

エラー処理

  • 戻り値と例外
  • 戻り値を例外に変換する
  • 例外を戻り値に変換する
  • エラーレベル

サンプルプログラム

  • 多項式の評価
  • 幅優先検索
  • 追加の演習

機能の詳細

  • 名前付き引数
  • オブジェクト指向の呼び出し
  • クロージャ
  • カリー化
  • テールコール
  • 複数の代入と戻り
  • 可変引数

イテレータとコルーチン

  • 汎用の for ループ
  • ステートレス反復子とステートフル反復子
  • イテレータとコルーチンの違い

メタテーブルとメタメソッド

  • セット例
  • __tostring メタメソッド
  • 算術メタメソッド
  • __index、__newindex メタメソッド
  • __len メタメソッド

モジュールとパッケージ

  • モジュールの使用
  • モジュールの作成
  • モジュールをパッケージに編成する

高度なテーブル

  • キューとスタックのテーブル
  • グラフを説明する表
  • テーブルとしての行列
  • テーブルとしてのリンクされたリスト
  • 文字列バッファ

例によるメタテーブル

  • プロキシ
  • 読み取り専用
  • メモ化
  • メモ化を使用した動的プログラミング
  • フィボナッチの例

環境

  • グローバル変数と環境の関係
  • 自由変数
  • _ENV テーブルと _G テーブル

モジュールの詳細

  • モジュールを作成するためのさまざまなアプローチ
  • 動作を変更するモジュール
  • モジュールの初期化と引数
  • 環境を使用して安全なモジュールを実装する

高度なイテレータとコルーチン

  • プロデューサー、コンシューマー、フィルター
  • コルーチンをラップしてイテレータを取得する
  • リンクされたリストのステートレス反復子

生態系への貢献

  • MoonRocks へのパッケージのアップロード

Lua の関数パラダイム

  • マップ機能
  • 縮小・折り機能

オブジェクト指向 Programming

  • OOP へのさまざまなアプローチ
  • 継承に対するさまざまなアプローチ

Lua 標準ライブラリのウォークスルー

編集

  • 編集
  • 評価
  • 環境との関係
  • バイナリチャンク

ガベージコレクション

  • 弱いテーブル
  • ファイナライザー、__gc メタメソッド

Lua バイトコードと仮想マシン

  • ソースコードからバイトコードを生成する
  • バイトコードの読み取りと分析
  • Lua VM のソース コードのクイック ツアー

Cモジュール

  • LuaからCを呼び出す
  • Search C モジュールのパスとロード

C から Lua を呼び出す

  • スタック
  • エラー処理
  • 続き

C からの Lua 値と型の処理

  • 配列
  • 文字列
  • ユーザーデータ
  • メタテーブル
  • オブジェクト指向の呼び出し
  • ライトユーザーデータ

メモリ管理

  • アロケータ
  • GC API

Lua のスレッド

  • コルーチンとスレッドの比較
  • 実際のマルチスレッドと Lua 状態

要求

少なくとも1つの他のプログラミング言語に精通していること。Programmingの経験。オプションとして、他のスクリプト言語に精通していると、Luaを理解しやすくなります。

  21 時間
 

参加者の人数


開始

完了


Dates are subject to availability and take place between 10:00 and 17:00.
Open Training Courses require 5+ participants.

お客様の声 (3)

関連コース

Combined C/C++, JAVA and Web Application Security

  28 時間

Advanced Java Security

  21 時間

Combined JAVA, PHP and Web Application Security

  28 時間

Standard Java Security

  14 時間

Java and Web Application Security

  21 時間

Advanced Java, JEE and Web Application Security

  28 時間

関連カテゴリー