!.
Translation status: 简体中文 reader-locale proof. Code fences render through the zh-Hans pipeline; prose is canonical Latin.
Asserted member, index, and call access on known-present values.
Syntax: <expression>!.<name> | <expression>![<expression>] | <expression>!(<args>)
Category#
non-null-chain
Related#
- !.
- ![
- !(
Examples#
radix/corpus/operatores/nonnull-chain.fab (canonical · operator-group)#
Asserted member, index, and call access on known-present values.
# =============================================================================
# !. — Asserted member, index, and call access on known-present values.
# =============================================================================
#
# What this teaches:
# • Non-null assertion — `!.` accesses fields on values that are known to be present.
# • Index and call variants — `![ ]` for index access, `!( )` for call access on non-null values.
#
# Common mistakes:
# • Using non-null chain when the value could actually be null — causes a runtime failure.
#
# See also: !., ![, !(
# =============================================================================
# operatores/nonnull-chain — !. ![ !(
#
# GRAMMAR:
# nonNullSuffix :← '!.' IDENTIFIER | '![' expr ']' | '!(' argumentList ')'
#
# EXPECTED OUTPUT:
# Marcus, Roma, a
#
# BACKEND:
# Rust: non-null chain lowering gap (whitelist: operatores/nonnull-chain.fab).
class Persona {
string nomen
string urbs optional
}
main {
const Persona ∪ null p ← Persona { nomen = "Marcus", urbs = "Roma" }
print p!.nomen
print p!.urbs
const _ litterae ← ["a", "b", "c"]
print litterae![0]
}Expected output:
Marcus
Roma
a