


Bagaimana untuk mengaitkan nilai enum dengan pemalar rentetan dalam protobuf?
Persatuan Jenis Penghitungan Protobuf dan Pemalar String
Artikel ini membincangkan bagaimana untuk menentukan jenis enum dalam Protobuf dan mengaitkan pemalar rentetan untuk setiap nilai enum, yang mudah digunakan dalam bahasa pengaturcaraan yang berbeza.
Anda mungkin telah menentukan jenis enum mudah, sebagai contoh:
jenis enum { Type_0 = 0; Type_1 = 1; Type_2 = 2; }
Tidak mustahil untuk menambah pemalar rentetan untuk menghukum nilai secara langsung dalam fail .proto
. Protobuf sendiri tidak secara langsung menyokong definisi eksplisit hubungan pemetaan tersebut. Walau bagaimanapun, kod yang dihasilkan menyediakan akses tidak langsung.
Penyelesaian untuk bahasa pengaturcaraan yang berbeza:
Pengkompil Protobuf menghasilkan kod khusus bahasa berdasarkan fail .proto
anda. Kod ini mengandungi hubungan pemetaan antara nilai enum dan nama rentetan.
C: Anda boleh menggunakan fungsi
Foo_Name(value)
(di manaFoo
adalah nama jenis enum) untuk mendapatkan nama rentetan yang sepadan dengan nilai enum yang diberikan. Jika nilai enum tidak wujud, rentetan kosong dikembalikan. Jika pelbagai nilai enum sesuai dengan nilai angka yang sama, nama definisi pertama dikembalikan.Pergi: Pengkompil secara automatik akan menghasilkan dua pemetaan:
Foo_name
(int32 ke rentetan) danFoo_value
(rentetan ke int32). Anda boleh menggunakan pemetaan ini secara langsung untuk menukar nilai enum dan pemalar rentetan.Bahasa lain: Bahasa lain yang menyokong Protobuf (seperti Java, Python) juga menyediakan mekanisme yang sama. Untuk kaedah tertentu, sila rujuk dokumentasi Protobuf bahasa yang sepadan.
Contoh (Pergi):
Katakan fail .proto
anda mentakrifkan Types
penghitungan di atas. Akan ada pemetaan yang serupa dengan yang berikut dalam kod GO yang dihasilkan:
var types_name = map [int32] string { 0: "type_0", 1: "type_1", 2: "type_2", } var types_value = map [string] int32 { "Type_0": 0, "Type_1": 1, "Type_2": 2, }
Anda boleh menggunakan pemetaan ini seperti ini:
StringValue: = types_name [types.type_1] // stringValue akan menjadi "type_1" intValue: = types_value ["type_0"] // intValue akan menjadi 0
Ringkasan: Walaupun persatuan antara nilai enum dan pemalar rentetan tidak dapat ditakrifkan secara langsung dalam fail .proto
, kod yang dihasilkan akan menyediakan mekanisme yang mudah untuk melaksanakan pemetaan ini, dengan itu mengelakkan kerja secara manual mengekalkan jadual pemetaan. Sila rujuk dokumentasi Protobuf untuk bahasa pengaturcaraan yang anda gunakan untuk butiran pelaksanaan tertentu.
Atas ialah kandungan terperinci Bagaimana untuk mengaitkan nilai enum dengan pemalar rentetan dalam protobuf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

Sejarah dan evolusi C# dan C adalah unik, dan prospek masa depan juga berbeza. 1.C dicipta oleh BjarnestroustRup pada tahun 1983 untuk memperkenalkan pengaturcaraan berorientasikan objek ke dalam bahasa C. Proses evolusinya termasuk pelbagai standardisasi, seperti C 11 memperkenalkan kata kunci auto dan ekspresi Lambda, C 20 memperkenalkan konsep dan coroutin, dan akan memberi tumpuan kepada pengaturcaraan prestasi dan sistem pada masa akan datang. 2.C# telah dikeluarkan oleh Microsoft pada tahun 2000. Menggabungkan kelebihan C dan Java, evolusinya memberi tumpuan kepada kesederhanaan dan produktiviti. Sebagai contoh, C#2.0 memperkenalkan generik dan C#5.0 memperkenalkan pengaturcaraan tak segerak, yang akan memberi tumpuan kepada produktiviti pemaju dan pengkomputeran awan pada masa akan datang.

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Golang lebih baik daripada C dalam kesesuaian, manakala C lebih baik daripada Golang dalam kelajuan mentah. 1) Golang mencapai kesesuaian yang cekap melalui goroutine dan saluran, yang sesuai untuk mengendalikan sejumlah besar tugas serentak. 2) C Melalui pengoptimuman pengkompil dan perpustakaan standard, ia menyediakan prestasi tinggi yang dekat dengan perkakasan, sesuai untuk aplikasi yang memerlukan pengoptimuman yang melampau.

Golang lebih baik daripada Python dari segi prestasi dan skalabiliti. 1) Ciri-ciri jenis kompilasi Golang dan model konkurensi yang cekap menjadikannya berfungsi dengan baik dalam senario konvensional yang tinggi. 2) Python, sebagai bahasa yang ditafsirkan, melaksanakan perlahan -lahan, tetapi dapat mengoptimumkan prestasi melalui alat seperti Cython.

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

C Berinteraksi dengan XML melalui perpustakaan pihak ketiga (seperti TinyXML, PugixML, Xerces-C). 1) Gunakan perpustakaan untuk menghuraikan fail XML dan menukarnya ke dalam struktur data C-diproses. 2) Apabila menjana XML, tukar struktur data C ke format XML. 3) Dalam aplikasi praktikal, XML sering digunakan untuk fail konfigurasi dan pertukaran data untuk meningkatkan kecekapan pembangunan.
