最近工作中使用了thrift,作为小白,摘录和总结了一些thrift基本语法及使用实例,仅做记录
1 类型
Thrift类型系统包括预定义基本类型,用户自定义结构体,容器类型,异常和服务定义
1.1 基本类型
bool: 布尔类型,占一个字节
byte: 有符号字节 //对应C++ char
i16:16位有符号整型 //对应C++ short
i32:32位有符号整型 //对应C++ int
i64:64位有符号整型 //对应C++ long
double:64位浮点数 //对应C++ double
string:未知编码或者二进制的字符串 //对应C++ string
注意:thrift不支持无符号整形,因为很多目标语言不存在无符号整形(比如java)
1.2 容器
List<t1>:一系列t1类型的元素组成的有序列表,元素可以重复,对应c++中vector
Set<t1>:一些t1类型的元素组成的无序集合,元素唯一不重复,对应c++中set
Map<t1,t2>:key/value对,key唯一,对应c++中map
容器中的元素类型可以是除service以外的任何合法的thrift类型,包括结构体和异常类型
1.3 枚举
规定:
1.编译器默认从0开始赋值
2.可以赋予某个常量某个整数
3.允许常量是十六进制整数
4.末尾无分号或逗号
5.给常量赋缺省值时,使用常量的全称
6.Thrift不支持枚举类嵌套,枚举常量必须是32位的正整数
例:
enum MyEnum {
PEAR,
APPLE = 3,
BANANA = 0xa,
MANGO
}
1.4 结构体
1.struct不能继承,但是可以嵌套,不能嵌套自己。