サイトトップまとめドキュメントValaValaについて ≫ 言語としてのVala(Vala言語)

言語としてのVala(Vala言語)

  • 言語の機能が豊富で生産性が高い

  • オブジェクト指向プログラミングに対応

  • 全般的にC#言語に近い文法

  • アーキテクチャによらずbit数/値の範囲が保証された型(例:int64)が利用可能

  • GObjectシグナルによるイベント処理

  • 文字列型のエンコーディングはUTF-8固定(GLibの仕様による)

  • 部分文字列の簡単な取り出し(Pythonに近い形)

  • プロパティ(C#言語に近いが、オブジェクト生成時のみ書き込み可なプロパティなど、細かい設定も可)

  • ローカル変数の型推論(var)

  • 列挙型(enum)

  • 中身のデータ型を指定したリスト構造(SList<G>.List<G>)

  • ラムダ,クロージャ

  • 構造体

  • クラス,インターフェース,継承,オーバーライド(override),隠蔽(new)

  • オブジェクトはオブジェクト変数の寿命とともにそのタイミングで破棄されるため、解放処理をデストラクタに記述すると利用側で解放の処理を書く必要のない使い方ができる

  • 名前空間,usingによる取り込み

  • for,switch,while,do-while,if,foreachなどの構文

  • 変数,関数の仮引数,関数の戻り値において値のnull可指定ができる(標準ではnull値にはできない)

  • C#言語と同様のref(データの入っている変数の中身を関数内で用いる場合の参照),out(関数の中で引数の変数に値を入れるだけの場合に用いる参照)指定

  • 例外処理(try-catch),ユーザ定義例外

  • 外部ライブラリGee(libgee)を用いることにより追加でコレクションのクラス群が利用可能