get(k: K) - > Option<V>- 모듈
- 컬렉션 →
- 수신자
- Map<K, V>
- 최소 인자 수
- 1
- 최대 인자 수
- 1
Declaration and parameters
링크사용 조건
기본 포함 · 예
These types are provided by the language. No module import is required.
The declarations below describe the standard operations on built-in values.
수신자
Map<K, V>
매개변수 제약
Map<K, V>.get(k) accepts a key of type K and returns Option<V>. A present key produces Some(value), and an absent key produces None(). Lookup does not insert an entry.
Use map.get(key) ?? fallback to supply a value for an absent key. Evaluate the receiver and key once, then perform the lookup once. A present value skips the fallback. An absent key evaluates the fallback once.
The fallback must be compatible with V. A stored Option or nullable value remains the payload of a present key. Its inner None() or null does not make that key absent.
Map.getOr is absent. Its former eager default evaluation is expressed with ordinary bindings when those effects are needed.
To preserve eager effects, bind the receiver, key, and default in that order. Perform receiver.get(key) ?? default after those bindings. This preserves default evaluation before lookup, including effects that change the map.
관련 규칙 · Use Map.get with optional fallback →결과
The declared result type is Option<V>.
효과
실패
Result and effects
링크A present key produces Some(value), and an absent key produces None(). The lookup does not insert an entry. Apply ?? to supply a fallback when the key is absent.
Why
링크Returning Option gives Map lookup the same absence and fallback rules as other optional values.
Related entries
링크Use Map.get with optional fallback
링크Use Map.get with optional fallback
Map<K, V>.get(k) accepts a key of type K and returns Option<V>. A present key produces Some(value), and an absent key produces None(). Lookup does not insert an entry.
Use map.get(key) ?? fallback to supply a value for an absent key. Evaluate the receiver and key once, then perform the lookup once. A present value skips the fallback. An absent key evaluates the fallback once.
The fallback must be compatible with V. A stored Option or nullable value remains the payload of a present key. Its inner None() or null does not make that key absent.
Map.getOr is absent. Its former eager default evaluation is expressed with ordinary bindings when those effects are needed.
To preserve eager effects, bind the receiver, key, and default in that order. Perform receiver.get(key) ?? default after those bindings. This preserves default evaluation before lookup, including effects that change the map.
이유
Map lookup represents absence with Option. The shared coalescing operator supplies defaults with one evaluation rule. Explicit bindings preserve eager effects without a second lookup API.
Evaluate a fallback for a missing key
링크import std.iofunction fallback() -> int {io.writeLine("fallback")9}let values: Map<string, int> = map { "present": 7 }let present = values.get("present") ?? fallback()io.writeLine("{present}")let missing = values.get("missing") ?? fallback()io.writeLine("{missing}")
7
fallback
9
기대 결과
기대 결과
실행을 마칩니다. 종료 코드 0.
7fallback9
Reject the removed Map.getOr member
링크let m: Map<string, int> = map { "present": 7 }m.getOr("present", 9)
표준 출력 없음.기대 결과
Supply the default with get and ??
링크let m: Map<string, int> = map { "present": 7 }m.get("present") ?? 9
표준 출력 없음.기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
Preserve eager default effects with ordered bindings
링크import std.iofunction makeMap() -> Map<string, int> {io.writeLine("receiver")map { "present": 7 }}function makeKey() -> string {io.writeLine("key")"present"}function makeFallback() -> int {io.writeLine("fallback")9}let receiver = makeMap()let key = makeKey()let fallback = makeFallback()let value = receiver.get(key) ?? fallbackio.writeLine("{value}")
receiver
key
fallback
7
기대 결과
기대 결과
실행을 마칩니다. 종료 코드 0.
receiverkeyfallback7