kiểu
Translation status: Tiếng Việt reader-locale proof. Term names and code fences follow the vi pack; supporting prose may still be English.
Declares a concrete type with fields and methods.
Aliases: class, struct
Syntax: kiểu <name> [<type-params>] <block>
Category#
type
Related#
Examples#
radix/corpus/genus/genus.fab (canonical · keyword)#
Declares a concrete type with fields and methods.
# =============================================================================
# kiểu — Declares a concrete type with fields and methods
# =============================================================================
#
# What this teaches:
# • Declares a concrete type with fields and methods.
# • Related keywords: giao_ước, thực_thi
#
# Common mistakes:
# • Using retired bare object literals (`{ key = expr }`) — use `GenusName { field = expr }` instead; bare `{ }` is now a JSON giá_trị literal.
#
# See also: giao_ước, thực_thi
# =============================================================================
# Basic kiểu (record type) with fields
#
# kiểu <Name> {
# <type> <property>
# <type> <property> = <default>
# }
#
# GRAMMAR:
# genusDecl :← 'kiểu' ident '{' fieldDecl* '}'
# instance :← ident '{' fieldInit (',' fieldInit)* '}'
#
# EXPECTED OUTPUT:
# Field values for Punctum and Persona instances (defaults and overrides).
class Punctum {
var int x
var int y
}
class Persona {
var string tên
# default when omitted at instantiation
var int aetas = 0
var bool activus = true
}
main {
# Instantiate with all required fields
const Punctum p ← Punctum { x = 10, y = 20 }
print p.x
print p.y
# Instantiate with required + optional defaults
const Persona marcus ← Persona { tên = "Marcus" }
print marcus.nomen
# 0 from default
print marcus.aetas
# đúng from default
print marcus.activus
# Override defaults explicitly
const Persona julia ← Persona { tên = "Julia", aetas = 25, activus = false }
print julia.nomen
print julia.aetas
print julia.activus
}Expected output:
10
20
Marcus
0
verum
Julia
25
falsum