一、Thrift的使用
1.1基本类型
thrift不支持无符号类型,因为很多编程语言不存在无符号类型,比如Java
- byte: 有符号字节
- i16: 16位有符号整数
- i32: 32位有符号整数
- i64: 64位有符号整数
- double: 64位浮点数
- string: 字符串
1.2容器类型
集合中的元素可以是除了service之外的任何类型,包括exception。
- list<T>: 一系列由T类型的数据组成的有序列表,元素可以重复
- set<T>: 一系列由T类型的数据组成的无序集合,元素不可重复
- map<K, V>: 一个字典结构,key为K类型,value为V类型,相当于Java中的HashMap<K,V>
1.3 结构体(struct)
就像C语言一样,thrift也支持struct类型,目的就是将一些数据聚合在一起,方便传输管理。struct的定义形式如下:
- struct NPC
- {
- 1:i32 id;
- 2:string name;
- }
1.4 枚举
枚举的定义形式和Java的Enum定义差不多,例如:
- enum Action {
- Idle,
- Attack,
- Run
- }
1.5 异常(exception)
thrift支持自定义exception,规则和struct一样,如下:
- exception RequestException {
- 1: i32 code;
- 2: string reason;
- }
1.6 服务(service)
thrift定义服务相当于Java中创建Interface一样,创建的service经过代码生成命令之后就会生成客户端和服务端的框架代码。定义形式如下:
- service HelloWordService {
-