thrift IDL 基本类型和实践(三)enum、const、typedef、exception

6,047 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

简介

Thrift 通过 IDL(Interface Definition Language)定义通用的服务接口,通过 Thrift 提供的编译器,将 IDL 编译为不同语言的代码,通过这个方式实现跨语言的功能。

我写的这个系列的文章,参考了两篇比较好的文章,从实践的角度看下 Thrift IDL 的编写

文章系列

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
}