小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
简介
Thrift 通过 IDL(Interface Definition Language)定义通用的服务接口,通过 Thrift 提供的编译器,将 IDL 编译为不同语言的代码,通过这个方式实现跨语言的功能。
我写的这个系列的文章,参考了两篇比较好的文章,从实践的角度看下 Thrift IDL 的编写
文章系列
- thrift IDL 基本类型和实践(一) struct 结构体、文件引用 和 基本类型
- thrift IDL 基本类型和实践(二)Container (容器)
- thrift IDL 基本类型和实践(三)enum、const、typedef、exception
- thrift IDL 基本类型和实践(四)service(服务)、namespace、保留关键字
enum(枚举)
如果使用过 typescript,可以看到和 typescript 的写法相同
可以不设置默认值,默认值则会从 0 开始
enum UploadType {
NONE,
IMAGE,
VIDEO,
}
可以设置默认值
enum UploadType {
IMAGE = 1,
VIDEO = 2,
}
常用在枚举的情况,比如上面的上传类型字段,会用 image、video 两种情况,可以通过枚举来设置
enum UploadType {
IMAGE = 1,
VIDEO = 2,
}
struct UploadInfo {
1: required UploadType type;
}
const(常量)
在变量前面增加 const,可以定义常量
const i32 age = 28;
typedef(类型定义)
作用是为一种数据类型定义一个新名字,注意后面没有分号
typedef i32 myInt
typedef i64 myNumber
exception(异常)
在语法和功能上类似于结构体,差别是异常使用关键字 exception,而且异常是继承每种语言的基础异常类。
exception MyException {
1: i32 errCode,
2: string errMsg
}