V言語 構造体


V言語 構造体

概要

V言語にも、他言語のクラスに相当する仕組みがある。
それが構造体である。
構造体内部に、プロパティとして、
複数のデータを格納できる。

定義フォーマット

他言語のクラス定義とほぼ同一である。
注意点は以下の3つ。

  1. プロパティ名と型の間は空白のみを入れる
  2. プロパティにデフォルト値を与えることはできない
  3. プロパティ同士の区切り目は改行である
struct 構造体名{
    プロパティ名 型
    プロパティ名 型
}

利用フォーマット

連想配列の要素定義とフォーマットはほぼ同一である。
違いは、連想配列のキーが文字列なのに対し、
構造体のプロパティ名は、素のリテラルであるということである。
個々のプロパティの定義同士は、,で区切る。

定数/変数名 := 構造体名{
    プロパティ名 : 値,
    プロパティ名 : 値
}

コード例

// # 構造体 初歩編
// ## 構造体の形式定義
struct Book {
    // ### プロパティ定義
    // 1. プロパティ名 プロパティ型
    // 2. 名前と型の区切りに:は使わない
    // 3. プロパティ同士の区切りに,は使わない
    name     string
    author   string
    year     int
    language string
}

// ## 構造体の使用
fn main() {
    // 1. 構造体は初期化子を使って変数定義する
    // 2. マップの初期化子と形式はほぼ同じ
    // 3. マップのキーは文字列だが、プロパティ名は素のリテラル
    wagahai_wa_neko_dearu := Book {
        name     : '吾輩は猫である',
        author   : '夏目漱石',
        year     : 1905,
        language : 'Japanese'
    }
    println('吾輩は猫であるの書名     : ${wagahai_wa_neko_dearu.name}')
    println('吾輩は猫であるの著者     : ${wagahai_wa_neko_dearu.author}')
    println('吾輩は猫であるの執筆年   : ${wagahai_wa_neko_dearu.author}')
    println('吾輩は猫であるの言語は   : ${wagahai_wa_neko_dearu.language}')
}

 

実行結果

関連項目

  1. V言語公式リポジトリ
  2. V言語公式ドキュメント
  3. V言語変更履歴
  • このエントリーをはてなブックマークに追加

PAGE TOP