Thrift的数据类型
2015-10-23 14:42
176 查看
要编写Thrift定义文件,肯定要熟悉Thrift常见的数据类型:
1.基本类型(括号内为对应的Java类型):
bool(boolean): 布尔类型(TRUE or FALSE)
byte(byte): 8位带符号整数
i16(short): 16位带符号整数
i32(int): 32位带符号整数
i64(long): 64位带符号整数
double(double): 64位浮点数
string(String): 采用UTF-8编码的字符串
2.特殊类型(括号内为对应的Java类型):
binary(ByteBuffer):未经过编码的字节流
3.Structs(结构):
struct定义了一个很普通的OOP对象,但是没有继承特性。
如果变量有默认值,可以直接写在定义文件里:
4.容器,除了上面提到的基本数据类型,Thrift还支持以下容器类型:
list(java.util.ArrayList):
set(java.util.HashSet):
map(java.util.HashMap):
Thrift容器与类型密切相关,它与当前流行编程语言提供的容器类型相对应,采用java泛型风格表示的。Thrift提供了3种容器类型:
List<t1>:一系列t1类型的元素组成的有序表,元素可以重复
Set<t1>:一系列t1类型的元素组成的无序表,元素唯一
Map<t1,t2>:key/value对(key的类型是t1且key唯一,value类型是t2)。
容器中的元素类型可以是除了service意外的任何合法thrift类型(包括结构体和异常)。
用法如下:
包含定义的其他Object:
5.Services服务,也就是对外展现的接口:
1.基本类型(括号内为对应的Java类型):
bool(boolean): 布尔类型(TRUE or FALSE)
byte(byte): 8位带符号整数
i16(short): 16位带符号整数
i32(int): 32位带符号整数
i64(long): 64位带符号整数
double(double): 64位浮点数
string(String): 采用UTF-8编码的字符串
2.特殊类型(括号内为对应的Java类型):
binary(ByteBuffer):未经过编码的字节流
3.Structs(结构):
struct定义了一个很普通的OOP对象,但是没有继承特性。
struct UserProfile { 1: i32 uid, 2: string name, 3: string blurb }
如果变量有默认值,可以直接写在定义文件里:
struct UserProfile { 1: i32 uid = 1, 2: string name = "User1", 3: string blurb }
4.容器,除了上面提到的基本数据类型,Thrift还支持以下容器类型:
list(java.util.ArrayList):
set(java.util.HashSet):
map(java.util.HashMap):
Thrift容器与类型密切相关,它与当前流行编程语言提供的容器类型相对应,采用java泛型风格表示的。Thrift提供了3种容器类型:
List<t1>:一系列t1类型的元素组成的有序表,元素可以重复
Set<t1>:一系列t1类型的元素组成的无序表,元素唯一
Map<t1,t2>:key/value对(key的类型是t1且key唯一,value类型是t2)。
容器中的元素类型可以是除了service意外的任何合法thrift类型(包括结构体和异常)。
用法如下:
struct Node { 1: i32 id, 2: string name, 3: list<i32> subNodeList, 4: map<i32,string> subNodeMap, 5: set<i32> subNodeSet }
包含定义的其他Object:
struct SubNode { 1: i32 uid, 2: string name, 3: i32 pid }
struct Node { 1: i32 uid, 2: string name, 3: list<subNode> subNodes }
5.Services服务,也就是对外展现的接口:
service UserStorage { void store(1: UserProfile user), UserProfile retrieve(1: i32 uid) }
相关文章推荐
- 验证码
- Linux 修改时区的方法。centos ,Debian 有效
- 应用删除后 Launchpad 上仍有应用图标无法删除的解决方法
- 修改cms 管理栏目路径
- java 多文件压缩成一个zip压缩包
- Blend 混合
- 算法学习参考网址
- 20151023积累
- 批量转换gbk编码的java代码为utf8
- 目前流行的缺陷管理工具
- 武功唯快不破
- 我的iOS学习历程 - 第十二天(C语言学习的最后一天,对C语言的知识进行一个整体需求)
- SPI笔记
- 【PHPsocket编程专题(实战篇①)】php-socket通信演示
- 通过WiFi连接手机(device), 出去数据线的烦恼
- jQuery 获取 div 之间的内容,有两种方法
- [CI]jenkins+ant+testng+webdriver+svn
- android获取状态栏高度
- does not contain bitcode. You must rebuild it with
- easyui弹出提示框