thrift php list,Thrift 类型介绍

Thrift 类型

Thrifth 类型旨在使程序员能够尽可能的使用目标语言的类型,不用的是哪种编程语言。 本文基于 Thrift Whitepaper 编写。 Thrift IDL(翻译进行中) 将介绍每种Thrift类型在对应语言中的类型

基础类型

基础类型以简单,清析的原则选取自所有语言可用的主要类型

类型

说明

备注

bool

布尔

1位 值为 true 或 false

i8/byte

有符号整型

8 位(1 字节)

i16

有符号整型

16位(2 字节)

i32

有符号整型

32位(4 字节)

i64

有符号整型

64位(8 字节)

double

浮点数

64位(8 字节)

string

字符串(UTF-8编码)

说明: 没有无符号整型,是因为大部分编程语言没有无符号整型

特殊类型

binary 一组未编码的字节

说明: 该类型目前为一种特殊的字符串类型,以提高无Java的互用性。目录的规则是将其提升为基本类型

结构体(Structs)

用于定义通用对象,本质上等价于面向对象语言里的类, 但没有继续体系。

一个结构体,包含若干强类型字段,每个字段都有一个唯一的标识符(identifier), 也可能包含若干附加信息(如:数字ID, 默认值(可选),等), 详见: Thrift IDL (翻译进行中)

容器(Containers)

Thrift 提供多数编程语言常见和常用的容器, 包含以下三种容器:

list: 一个有序元素列表,对应类型 STL vector, Java ArrayList,脚本语言的数组

set: 一个无序,无重复元素列表,STL set, Java HashSet, Python set, PHP List(PHP 不支持set)

map: 键值对(键唯一) STL map, Java HashMap, PHP associative array, Python/Ruby dictionary

容器元素可以是任意有效Thrift类型

说明: 为了提高兼容性,map的键只能是基础类型,有些语言不支持,JSON 协议也只支持基础类型为键

异常 (Exceptions)

基本上和结构体是一样的,唯一的区别就是会继续目标语言的异常基类,以便无缝集成对应语言的异常处理

服务(Services)

服务定义需要用到Thrift类型。定义一个服务,语义上与面向对象语言定义一个接口(或定义一个全是抽象方式的抽象类型), Thrift 编译器会生成实现这个接口的,客户端和服务端

一个服务由若干个方法(有名字,不是匿名方法), 每个方法可以有若干个参数和一个返回类型

说明: void 是一个有效的返回类型,用户定义的其它的Thrift类型也是有效的。 在void修饰的方法前可以加一个 oneway 限定符(可以这么叫吧?), 由此产生的方法,客户端发送请求后不会等待服务端的响应。 如果没加,那么就算返回类型是void, 服务端会响应,客户端也会接收响应以确定服务端操作执行完成。而oneway 修饰的方法只在传输层(transport layer) 保证请求是发送成功的 由同一个客户端发送的oneway方法的多次请求,在服务端处理是并行的(无序的)

来源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值