OxL Справочник OxL
РусскийEnglish

kw open

Зарезервированное слово

Список слов: §1.4

Синтаксис

ebnf
ImplMember  = { Attr } [ Vis ] ( Receiver ( "fn" | "op" ) Sig ( Block | "=>" Expr )
            | "override" "fn" Sig ( Block | "=>" Expr ) | "open" "fn" Sig ( Block | "=>" Expr )
            | "init" Sig ( Block | "=>" Expr ) | "dep" Ident ":" Type | Rpc | Const ) ;

Грамматика: Прил. A

Определяется в

Примеры

oxl
data Animal { name: str }
impl Animal {
  open fn speak() -> str => "..."
  fn hello() -> str => "I am {name}: {speak()}"
}

data Dog { embed Animal; breed: str }
impl Dog { override fn speak() -> str => "Woof, {super.speak()}" }

Dog{ name: "Rex", breed: "lab" }.hello()    // "I am Rex: Woof, ..."

— 4.7 Встраивание и переопределение

oxl
provide Db = Db.open(App.get().dbUrl)          for role api, saga
provide Payments = PaymentsClient.new(App.get().stripeKey)

impl Orders { dep db: Db; dep pay: Payments }

— 12.7 Зависимости

Связанные диагностики

ambiguous-embed, missing-override, override-without-open, bad-init, missing-field, must-close, positional-literal, sealed-literal, duplicate-provide, missing-provide, unknown-role, query-not-sql, shard-count-clamped, table-schema

См. также