渲染zh-Hant

!.

Translation status: 繁體中文 reader-locale proof. Code fences render through the zh-Hant 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

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