本文へ移動
mie リファレンス
REPL Playground

std:map リファレンス

@import 'std:map' で取得する順序付きマップモジュール。挿入順を保持するキー・値コレクション OrderedMap を提供する。

empty

empty
empty: OrderedMap

空の OrderedMap (順序付きマップ)。

>>> map.empty
OrderedMap{}

of

of(pairs)
of: { List | OrderedMap }

(key, value) の 2-Tuple の List から OrderedMap を構築する (キー重複は後勝ち)。

>>> map.of([("a", 1), ("b", 2)])
OrderedMap{"a": 1, "b": 2}

OrderedMap メソッド

compare

m.compare(other)
compare: { OrderedMap | Ordering }

エントリ列の辞書式順序。

>>> map.of([("a", 1)]).compare(map.of([("b", 2)]))
Less

each

m.each { k, v | … }
each: { Any | Unit }

キー昇順に各エントリへ適用する。

>>> map.of([("a", 1), ("b", 2)]).each { k, v | println(k, v) }
("a", 1)
("b", 2)

entries

m.entries!
entries: { List(Any) }

(key, value) の昇順 List。

>>> map.of([("b", 2), ("a", 1)]).entries!
[("a", 1), ("b", 2)]

filter

m.filter { k, v | Bool }
filter: { Any | OrderedMap }

述語が true のエントリだけの新 OrderedMap。

>>> map.of([("a", 1), ("b", 2)]).filter { k, v | v > 1 }
OrderedMap{"b": 2}

first

m.first!
first: { Option(Any) }

最小キーのエントリを Some((k, v))、空なら None。

>>> map.of([("a", 1), ("b", 2)]).first!
Some(("a", 1))

fold

m.fold(init) { acc, k, v | … }
fold: { Any, Any | Any }

キー昇順の左畳み込み。

>>> map.of([("a", 1), ("b", 2)]).fold(0) { acc, k, v | acc + v }
3

get

m.get(k)
get: { Any | Option(Any) }

キー k の値を Some(v)、無ければ None。

>>> map.of([("a", 1), ("b", 2)]).get("a")
Some(1)

has

m.has(k)
has: { Any | Bool }

キー k が存在すれば true。

>>> map.of([("a", 1)]).has("a")
true

insert

m.insert(k, v)
insert: { Any, Any | OrderedMap }

k→v を加えた新 OrderedMap (既存は上書き)。

>>> map.of([("a", 1), ("b", 2)]).insert("c", 3)
OrderedMap{"a": 1, "b": 2, "c": 3}

is_empty

m.is_empty!
is_empty: { Bool }

空なら true。

>>> map.of([]).is_empty!
true

keys

m.keys!
keys: { List(Any) }

キーを compare 昇順の List で返す。

>>> map.of([("b", 2), ("a", 1)]).keys!
["a", "b"]

last

m.last!
last: { Option(Any) }

最大キーのエントリを Some((k, v))、空なら None。

>>> map.of([("a", 1), ("b", 2)]).last!
Some(("b", 2))

length

m.length!
length: { Int }

エントリ数。

>>> map.of([("a", 1), ("b", 2)]).length!
2

map

m.map { k, v | v' }
map: { Any | OrderedMap }

値を変換した新 OrderedMap (キーは不変)。

>>> map.of([("a", 1), ("b", 2)]).map { k, v | v * 10 }
OrderedMap{"a": 10, "b": 20}

merge

m.merge(other)
merge: { OrderedMap | OrderedMap }

マージした新 OrderedMap (同キーは右勝ち)。

>>> map.of([("a", 1)]).merge(map.of([("b", 2)]))
OrderedMap{"a": 1, "b": 2}

remove

m.remove(k)
remove: { Any | OrderedMap }

k を除いた新 OrderedMap。

>>> map.of([("a", 1), ("b", 2)]).remove("a")
OrderedMap{"b": 2}

to_list

m.to_list!
to_list: { List(Any) }

entries と同じ。

>>> map.of([("b", 2), ("a", 1)]).to_list!
[("a", 1), ("b", 2)]

values

m.values!
values: { List(Any) }

値をキー昇順に対応した List で返す。

>>> map.of([("b", 2), ("a", 1)]).values!
[1, 2]