Jadual Kandungan
Persatuan Jenis Penghitungan Protobuf dan Pemalar String
Rumah pembangunan bahagian belakang Golang Bagaimana untuk mengaitkan nilai enum dengan pemalar rentetan dalam protobuf?

Bagaimana untuk mengaitkan nilai enum dengan pemalar rentetan dalam protobuf?

Apr 02, 2025 pm 02:39 PM
python c++ Pemalar rentetan

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;
}
Salin selepas log masuk

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 mana Foo 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) dan Foo_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,
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

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.

C# vs C: Sejarah, evolusi, dan prospek masa depan C# vs C: Sejarah, evolusi, dan prospek masa depan Apr 19, 2025 am 12:07 AM

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.

Memilih antara php dan python: panduan Memilih antara php dan python: panduan Apr 18, 2025 am 12:24 AM

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 dan Python: menyelam mendalam ke dalam sejarah mereka PHP dan Python: menyelam mendalam ke dalam sejarah mereka Apr 18, 2025 am 12:25 AM

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 dan C: Konvensyen vs kelajuan mentah Golang dan C: Konvensyen vs kelajuan mentah Apr 21, 2025 am 12:16 AM

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 vs Python: Prestasi dan Skala Golang vs Python: Prestasi dan Skala Apr 19, 2025 am 12:18 AM

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 vs C: Lengkung pembelajaran dan kemudahan penggunaan Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Apr 19, 2025 am 12:20 AM

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 dan XML: Meneroka hubungan dan sokongan C dan XML: Meneroka hubungan dan sokongan Apr 21, 2025 am 12:02 AM

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.

See all articles