Maison > développement back-end > Golang > le corps du texte

Quel est l'équivalent de Rust dans Go ?

WBOY
Libérer: 2024-02-09 10:24:32
avant
361 Les gens l'ont consulté

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

L'éditeur php Xigua est là pour répondre à une question qui s'adresse à tout le monde : "Quel est l'équivalent de Rust à ajouter dans Go ?" Rust est un langage de programmation au niveau système, et Go est un langage de programmation concurrent. Dans Rust, l'équivalent fonctionnel de la fonction append dans Go consiste à utiliser la méthode push de type Vec. Vec est un type de tableau dynamique dans la bibliothèque standard Rust. Utilisez la méthode push pour ajouter des éléments à la fin du tableau. Cette fonction est similaire à la fonction append de Go, mais dans Rust, elle doit être implémentée à l'aide de la méthode push de Vec. De cette manière, Rust fournit un moyen simple et flexible de manipuler des tableaux dynamiques.

Contenu de la question

J'ai essayé de le comprendre en lisant moi-même la documentation mais je n'ai pas eu de chance sur la façon de convertir cette fonction go en rust :

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

  fmt.println(cards)
}

func newcard() string {
  return "five of diamonds"
}
Copier après la connexion

C'est incorrect, au moins le cards.append que je connais est faux :

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"
}
Copier après la connexion

Solution

Vous ne pouvez pas. Tout comme au Go, les tableaux rust ont une taille fixe.

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

Dans la rouille, la chose la plus proche à trancher est vec que vous pouvez utiliser comme ceci :

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"
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal