ref : 不允许别名,不允许为空指针unique : 不允许别名,允许为空指针ptr : 允许别名,允许为空指针其中:1. “别名”意味着如果同时有两个指针指向同一内存区域,则这两个指针互为别名,其可以推广至多个指针的情况2. “空指针”则意味着是否空指针仍然需要marshaling,其主要是出于marshaling传输效率考虑