thrift 的數(shù)據(jù)類型定義

1.基本類型(括號(hào)內(nèi)為對(duì)應(yīng)的Java類型):
bool(boolean): 布爾類型(TRUE or FALSE)
byte(byte): 8位帶符號(hào)整數(shù)
i16(short): 16位帶符號(hào)整數(shù)
i32(int): 32位帶符號(hào)整數(shù)
i64(long): 64位帶符號(hào)整數(shù)
double(double): 64位浮點(diǎn)數(shù)
string(String): 采用UTF-8編碼的字符串

2.特殊類型(括號(hào)內(nèi)為對(duì)應(yīng)的Java類型):
binary(ByteBuffer):未經(jīng)過(guò)編碼的字節(jié)流

3.Structs(結(jié)構(gòu)):
struct定義了一個(gè)很普通的OOP對(duì)象,但是沒(méi)有繼承特性。

struct UserProfile {
1: i32 uid,
2: string name,
3: string blurb
}

如果變量有默認(rèn)值,可以直接寫在定義文件里:

struct UserProfile {
1: i32 uid = 1,
2: string name = "User1",
3: string blurb
}

4.容器,除了上面提到的基本數(shù)據(jù)類型,Thrift還支持以下容器類型:
list(java.util.ArrayList):
set(java.util.HashSet):
map(java.util.HashMap):

Thrift容器與類型密切相關(guān),它與當(dāng)前流行編程語(yǔ)言提供的容器類型相對(duì)應(yīng),采用java泛型風(fēng)格表示的。Thrift提供了3種容器類型:

List<t1>:一系列t1類型的元素組成的有序表,元素可以重復(fù)

Set<t1>:一系列t1類型的元素組成的無(wú)序表,元素唯一

Map<t1,t2>:key/value對(duì)(key的類型是t1且key唯一,value類型是t2)。

容器中的元素類型可以是除了service意外的任何合法thrift類型(包括結(jié)構(gòu)體和異常)。

用法如下:

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服務(wù),也就是對(duì)外展現(xiàn)的接口:

service UserStorage {
void store(1: UserProfile user),
UserProfile retrieve(1: i32 uid)
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容