Buat jenis daripada slice
Feb 05, 2024 pm 10:57 PMSaya mahu mencipta jenis data seperti tindanan. Saya mahu menambah dan mengalih keluar masukan "di bahagian atas" dan boleh mencetaknya. Dalam contoh ini, jenis xpath digunakan untuk melintasi dokumen xml dan menjejaki laluan semasa.
Jadi saya mencipta xpath[]jenis rentetan dan menulis fungsi yang sepadan, iaitu: push() pop() dan string().
Masalah saya ialah jenis itu hilang keadaannya, yang agak mengelirukan saya kerana saya fikir kepingan adalah jenis rujukan. Juga, jika saya cuba menukar fungsi kepada penerima penunjuk, saya mendapat beberapa ralat kompilasi. Untuk membetulkannya pada ketika ini, saya hanya menukar [] rentetan kepada struct dengan medan rentetan [] tunggal. Walaupun ia masih mengganggu saya bahawa saya tidak dapat membuatnya berfungsi dengan hanya menggunakan slice sebagai jenis asas.
Apakah pendekatan yang betul?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
Jawapan betul
Fungsi tolak anda tidak melakukan apa-apa.
Fungsi tolak yang betul:
1 2 3 |
|
Sepotong ialah jenis rujukan dalam situasi di mana anda ingin menukar nilainya (cth. menggunakan indeks).
Sebaliknya, jika anda ingin mengagihkannya semula dan menggantikan keseluruhan kepingan, anda harus menggunakan penunjuk.
Mengenai tindanan, terdapat beberapa cara yang lebih baik: Semak soalan ini.
Atas ialah kandungan terperinci Buat jenis daripada slice. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel 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

Harga Bitcoin sejak kelahirannya 2009-2025 Ringkasan paling lengkap harga sejarah BTC

Perkara yang perlu dilakukan jika masa di sudut kanan bawah Windows 11 hilang_Apa yang perlu dilakukan jika masa di sudut kanan bawah Windows 11 hilang

Penjelasan terperinci tentang warisan fungsi C++: Bagaimana untuk menggunakan 'penunjuk kelas asas' dan 'penunjuk kelas terbitan' dalam warisan?

Bagaimana untuk menggunakan kod orang lain dalam python

Jenis pengecualian biasa dan langkah pembaikan mereka dalam pembangunan fungsi Java

Apakah yang perlu saya lakukan jika masa pada komputer win11 saya sentiasa salah? Bagaimana untuk melaraskan masa yang salah pada komputer Windows 11

Perbezaan antara const dan statik dalam c++

Bagaimana untuk menyekat parameter jenis dalam kaedah generik Java?
