0
votes

Équivalent pour Java System.ArrayCopy à Dart?

Comment convertir le code Java ci-dessous en Dart équivalent.

Statique privé Article final [] Midbytes = Nouvel octet [] {(octet) 0x01, (octet) 0x02, (octet) 0x03, (octet) 0x7e};

octets [] données;

System.ArrayCopy (MidBytes, 2, Données, 0, 4);

Y a-t-il une méthode de fléchettes qui fait un type de fonctionnement similaire?

Je cherchais ceci: https://pub.dev/documentation/ckb_dart_sdk/latest/ckb- utils_number / araycopy.html


2 commentaires

Pouvez-vous me montrer, qu'est-ce que data et macidbytes consiste? Aussi, quelle est la sortie attendue que vous voulez


@Alok a mis à jour ma question.


3 Réponses :


3
votes

Eh bien, j'ai trouvé la façon de le faire. Vous pouvez simplement utiliser

list.copyrange (données, 0, à mi-parcours, 2);


0 commentaires

1
votes

C'est une solution de contournement que j'ai un peu trouvé dans votre cas. Ceci s'appelle Subliste () , ceci la méthode prendra l'index de démarrage et un index de fin de code .

idée:

  1. Utilisez subliste () et copiez les éléments à démarrer à partir de cette sourcePOS = you_pos
  2. Array Source sera utilisé comme SourceArray.sublist (startindext, endindex)
  3. Le tableau de destination sera initialisé avec la valeur à l'aide de Sublist ()
  4. jusqu'à quelle longueur l'élément doit être ajouté serait mentionné dans l'index d'extrémité + 2 , car il ignore le dernier élément et copier jusqu'à l'index-1

    code final xxx


2 commentaires

Même cela a l'air jolie, mais list.copyrange est simple à utiliser.


Je sais @duay, je voulais juste vous faire savoir à ce sujet. Ou cela pourrait aider la communauté à l'avenir :) J'ai également suscité votre réponse, depuis que je l'ai aimé.



5
votes

Pour correspondre au système SYSTÈME DE JAVA.ArrayCopy (Source, SourceOffset, Target, TargetOffset, Longueur) Code> Vous devez utiliser

 target.setRange(targetOffset, targetOffset + length, source, sourceOffset);


0 commentaires