go和c++獲得枚舉類型的string值和int32值

//c++
void getEnumName() {                                             
    string str =  Report_type_Name(Report_type::REPORT_TYPE_NAME_INDECENT);
    cout << str << endl;                                         
    std::transform(str.begin(), str.end(), str.begin(), ::tolower);
    cout << str << endl;                                         
    Report_type type;                                            
                                                                 
    std::transform(str.begin(), str.end(), str.begin(), ::toupper);
    cout << str << endl;                                         
    if (Report_type_Parse(str, &type)) {                         
        cout << (int)type << endl;                               
    }                                                            
}
//輸出
REPORT_TYPE_NAME_INDECENT
report_type_name_indecent
REPORT_TYPE_NAME_INDECENT
1

//go
func getEnumStringName(){
	str:=GameProto.ReportType_REPORT_TYPE_ADVERTISING.String()
	str=strings.ToLower(str)
	log.Println(str)
	str=strings.ToUpper(str)
	ReportType_value:=proto.EnumValueMap("GameProto.ReportType")

	log.Println(ReportType_value[str])

}
//輸出
2019/05/23 12:16:01 report_type_advertising
2019/05/23 12:16:01 3

//proto
//舉報類型
enum Report_type
{
    REPORT_TYPE_NIL                     = 0;
    REPORT_TYPE_NAME_INDECENT           = 1;    //暱稱不雅
    REPORT_TYPE_ALLEGED_FRAUD           = 2;    //涉嫌欺詐
    REPORT_TYPE_ADVERTISING             = 3;    //廣告宣傳
    REPORT_TYPE_PORN_VIOLENCE           = 4;    //色情暴力
    REPORT_TYPE_LANGUAGE_VARIETY        = 5;    //語言粗俗
    REPORT_TYPE_CHEATING_USER           = 6;    //作弊用戶
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章