type
Person = tuple[name: string, age: int] # 人物を表現するタプル
#人物は名前と年齢により構成されている
var
person: Person
person = (name: "Peter", age: 30)
# 同じだがより可読性が低いもの
person = ("Peter", 30)
echo person.name # "Peter"
echo person.age # 30
echo person[0] # "Peter"
echo person[1] # 30
# 異なるtypeのセクションでタプルを宣言する必要はない
var building: tuple[street: string, number: int]
building = ("Rue del Percebe", 13)
echo building.street
# 以下のコードはコンパイルできない。異なるタプルだからだ。
#person = building
# --> Error: type mismatch: got (tuple[street: string, number: int])
# but expected 'Person'
# 以下のコードは、フィールドの名前と型が同じなため、動く
var teacher: tuple[name: string, age: int] = ("Mark", 42)
person = teacher
dHlwZQogIFBlcnNvbiA9IHR1cGxlW25hbWU6IHN0cmluZywgYWdlOiBpbnRdICMg5Lq654mp44KS6KGo54++44GZ44KL44K/44OX44OrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI+S6uueJqeOBr+WQjeWJjeOBqOW5tOm9ouOBq+OCiOOCiuani+aIkOOBleOCjOOBpuOBhOOCiwp2YXIKICBwZXJzb246IFBlcnNvbgpwZXJzb24gPSAobmFtZTogIlBldGVyIiwgYWdlOiAzMCkKIyDlkIzjgZjjgaDjgYzjgojjgorlj6/oqq3mgKfjgYzkvY7jgYTjgoLjga4KcGVyc29uID0gKCJQZXRlciIsIDMwKQoKZWNobyBwZXJzb24ubmFtZSAjICJQZXRlciIKZWNobyBwZXJzb24uYWdlICAjIDMwCgplY2hvIHBlcnNvblswXSAjICJQZXRlciIKZWNobyBwZXJzb25bMV0gIyAzMAoKIyDnlbDjgarjgot0eXBl44Gu44K744Kv44K344On44Oz44Gn44K/44OX44Or44KS5a6j6KiA44GZ44KL5b+F6KaB44Gv44Gq44GECnZhciBidWlsZGluZzogdHVwbGVbc3RyZWV0OiBzdHJpbmcsIG51bWJlcjogaW50XQpidWlsZGluZyA9ICgiUnVlIGRlbCBQZXJjZWJlIiwgMTMpCmVjaG8gYnVpbGRpbmcuc3RyZWV0CgojIOS7peS4i+OBruOCs+ODvOODieOBr+OCs+ODs+ODkeOCpOODq+OBp+OBjeOBquOBhOOAgueVsOOBquOCi+OCv+ODl+ODq+OBoOOBi+OCieOBoOOAggojcGVyc29uID0gYnVpbGRpbmcKIyAtLT4gRXJyb3I6IHR5cGUgbWlzbWF0Y2g6IGdvdCAodHVwbGVbc3RyZWV0OiBzdHJpbmcsIG51bWJlcjogaW50XSkKIyAgICAgYnV0IGV4cGVjdGVkICdQZXJzb24nCgojIOS7peS4i+OBruOCs+ODvOODieOBr+OAgeODleOCo+ODvOODq+ODieOBruWQjeWJjeOBqOWei+OBjOWQjOOBmOOBquOBn+OCgeOAgeWLleOBjwp2YXIgdGVhY2hlcjogdHVwbGVbbmFtZTogc3RyaW5nLCBhZ2U6IGludF0gPSAoIk1hcmsiLCA0MikKcGVyc29uID0gdGVhY2hlcgo=