fork download
  1. type
  2. Person = tuple[name: string, age: int] # 人物を表現するタプル
  3. #人物は名前と年齢により構成されている
  4. var
  5. person: Person
  6. person = (name: "Peter", age: 30)
  7. # 同じだがより可読性が低いもの
  8. person = ("Peter", 30)
  9.  
  10. echo person.name # "Peter"
  11. echo person.age # 30
  12.  
  13. echo person[0] # "Peter"
  14. echo person[1] # 30
  15.  
  16. # 異なるtypeのセクションでタプルを宣言する必要はない
  17. var building: tuple[street: string, number: int]
  18. building = ("Rue del Percebe", 13)
  19. echo building.street
  20.  
  21. # 以下のコードはコンパイルできない。異なるタプルだからだ。
  22. #person = building
  23. # --> Error: type mismatch: got (tuple[street: string, number: int])
  24. # but expected 'Person'
  25.  
  26. # 以下のコードは、フィールドの名前と型が同じなため、動く
  27. var teacher: tuple[name: string, age: int] = ("Mark", 42)
  28. person = teacher
  29.  
Success #stdin #stdout 0s 4536KB
stdin
Standard input is empty
stdout
Peter
30
Peter
30
Rue del Percebe