V言語 構造体
概要
V言語にも、他言語のクラスに相当する仕組みがある。
それが構造体である。
構造体内部に、プロパティとして、
複数のデータを格納できる。
定義フォーマット
他言語のクラス定義とほぼ同一である。
注意点は以下の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}')
}