[关闭]
@a06062125 2018-03-19T15:50:35.000000Z 字数 1222 阅读 336

在此处输入标题

未分类


在此输入正文

JSPB

Scalar types

  1. message User {
  2. string name = 1;
  3. }
  1. // getXXX, setXXX
  2. var user = new User();
  3. user.getName();
  4. user.setName();

Oneof types

  1. //文章meta
  2. message Meta {
  3. //标题 read-write,
  4. oneof oneof_meta {
  5. DogMeta dog = 1;
  6. CatMeta cat = 2;
  7. }
  8. }
  1. var meta = new Meta();
  2. // getXXXCase, 获取哪个字段被设置了, get前缀, Case 后缀,
  3. meta.getOneofMetaCase() // 0: 未设置, 1:dog, 2: cat;
  4. /**
  5. * oneof 中 field 的操作
  6. * getXXX, setXXX, hasXXX, clearXXX
  7. */
  8. // 获取具体的属性值
  9. meta.getDog()
  10. // 设置
  11. meta.setDog(dogMeta)
  12. // 清除
  13. meta.clearDog()
  14. // 是否有
  15. meta.hasDog()

Map types

  1. message ThumbInfo {
  2. map <string, MediaId> thumbs = 1;
  3. }
  1. var mediaIds = [new MediaId(oid, fid), new MediaId(oid, fid)]
  2. //设置:第一种方式,map.V 已经具有类型
  3. var mediaIdsArrayValue = [mediaIds.map(item => {return [
  4. // 注意, 第一个参数是 map.K, 是字符串
  5. String(item.getFid()),
  6. // 第二个参数是 map.V, 即MediaId
  7. item;
  8. ]})]
  9. var thumbInfo = new ThumbInfo(mediaIdsArrayValue);
  10. // 设置:第二种方式,map.V 没有类型
  11. // 取值:超级麻烦
  12. /**
  13. * 1. 先取这个map类型的 key 的 value: getXXXMap
  14. * 2. 上一步返回的值是一个jspb.Map 类型的值,
  15. 此时可以set , get ,
  16. 类型转换: toArray, toObject, loadFromArray_, fromObject
  17. 也支持迭代, keys, values, entires,
  18. 还可以
  19. */
  20. var thumbs = thumbInfo.getThumbsMap(); // thumbs instanceof jspb.Map === true

Repeated types

  1. // 公号审核员
  2. message AccountAuditor {
  3. repeated lx.t.StaffId auditor_id = 1;
  4. }
  5. message StaffId {
  6. // 全局唯一组织ID
  7. int32 oid = 1;
  8. // 全局唯一用户ID
  9. int32 uid = 2;
  10. }
  1. var accountAuditor = new AccountAuditor();
  2. /**
  3. * 集合操作:getXXXList(), setXXXList, clearXXXList
  4. * 向集合里推, addXXX()
  5. */
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注