Skip to Main Content
Hack 与HHVM 权威指南
book

Hack 与HHVM 权威指南

by Owen Yamauchi
March 2017
Beginner content levelBeginner
247 pages
3h 55m
Chinese
China Machine Press
Content preview from Hack 与HHVM 权威指南
集合
107
$vector = Vector {'one', 'two'};
list
($one, $two) = $vector;
$map = Map {1 => 'one', 0 => 'zero'};
list
($zero, $one) = $map;
// $zero
'zero'
$one
'one'
不可变集合
Vector
Map
以及
Set
都分别有其不可变的等价版本:
ImmVector
ImmMap
ImmSet
。(
Pair
本身就是不可变的,它没有可变的情况。)它们不实现任何可以修改它们内容的方法,
并且它们也不能通过方括号语法或者
unset
进行修改。如果你试图这样做,将会抛出一
个“非法操作异常(
InvalidOperationException
)”。不可变集合的内容在它们被创
建的时候就固定下来。它们可以通过字面量语法进行创建,仅使用
ImmVector
ImmMap
或者
ImmSet
作为类名,或者通过它们的构造器,或者从另外的
collection
进行转换(参
5.4.4
节的相关内容)。
通常来说,如果可能的话你应该尽量使用不可变集合。如果一些数据不应被修改,那么
使用不可变集合就可以减少一个可能的
bug
来源。在类型系统中,它还会对程序行为编
码更多的信息,这总是一件好事情。
5.4
集合类型标注
大多数时间下,你不应该在类型标注中直接使用集合类名称本身。
Hack
提供了一系列接
口用于描述集合功能的元素,所以你应该在日常类型标注的时候使用这些接口。
例如,如果你正在编写一个函数, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Reinventing the Organization for GenAI and LLMs

Reinventing the Organization for GenAI and LLMs

Ethan Mollick

Publisher Resources

ISBN: 9787111554844