Apakah persamaan Rust dengan tambahan dalam Go?

WBOY
Lepaskan: 2024-02-09 10:24:32
ke hadapan
365 orang telah melayarinya

Rust 相当于 Go 中的append 是什么?

editor php Xigua berada di sini untuk menjawab soalan untuk semua orang: "Apakah yang bersamaan dengan Rust untuk ditambahkan dalam Go ialah bahasa pengaturcaraan peringkat sistem dan Go ialah bahasa pengaturcaraan serentak. Dalam Rust, fungsi yang setara dengan fungsi tambah dalam Go ialah menggunakan kaedah tolak jenis Vec. Vec ialah jenis tatasusunan dinamik dalam perpustakaan standard Rust Gunakan kaedah tolak untuk menambah elemen pada penghujung tatasusunan. Fungsi ini serupa dengan fungsi tambah dalam Go, tetapi dalam Rust ia perlu dilaksanakan menggunakan kaedah tolak Vec. Dengan cara ini, Rust menyediakan cara yang mudah dan fleksibel untuk memanipulasi tatasusunan dinamik.

Kandungan soalan

Saya cuba memikirkannya dengan membaca dokumentasi sendiri tetapi tidak berjaya cara menukar fungsi go ini kepada karat:

func main() {
  cards := []string{"ace of diamonds", newcard()}
  cards = append(cards, "six of spades")

  fmt.println(cards)
}

func newcard() string {
  return "five of diamonds"
}
Salin selepas log masuk

Ini tidak betul, sekurang-kurangnya kad.tambahan yang saya tahu adalah salah:

fn main() {
    let mut cards: [&str; 2] = ["Ace of Diamonds", new_card()];
    let mut additional_card: [&str; 1] = ["Six of Spades"];
    cards.append(additional_card);

    println!("cards")
}

fn new_card() -> &'static str  {
    "Five of Diamonds"
}
Salin selepas log masuk

Penyelesaian

Anda tidak boleh. Sama seperti dalam perjalanan, tatasusunan karat adalah saiz tetap.

Taip [&str; 2]rust 中的 大致相当于 go 中的 [2]string,但你也不能对其进行 append .

Dalam karat, perkara yang paling dekat untuk dihiris ialah vec yang boleh anda gunakan seperti ini:

fn main() {
    let mut cards = vec!["Ace of Diamonds", new_card()];
    let additional_cards: [&str; 2] = ["Six of Spades", "Seven of Clubs"];
    // for anything that implements `IntoIterator` of cards
    cards.extend(additional_cards);
    // or for a single card only
    cards.push("Three of Hearts");

    println!("{cards:?}")
}

fn new_card() -> &'static str {
    "Five of Diamonds"
}
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah persamaan Rust dengan tambahan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan