BinaryFormat.Choice
Syntaksi
BinaryFormat.Choice(binaryFormat as function, chooseFunction as function, optional type as nullable type, optional combineFunction as nullable function) as function
Tietoja
Palauttaa binaarimuodon, joka valitsee seuraavan binaarimuodon jo luetun arvon perusteella. Tämän funktion tuottama binaarimuotoarvo toimii vaiheittain:
- -parametrin
binaryFormat
määrittämää binaarimuotoa käytetään arvon lukemiseen. - Arvo välitetään -parametrin määrittämälle valintafunktiolle
chooseFunction
. - Valintafunktio tutkii arvon ja palauttaa toisen binaarimuodon.
- Toista binaarimuotoa käytetään toisen arvon lukemiseen.
- Jos yhdistämisfunktio on määritetty, ensimmäiset ja toiset arvot välitetään yhdistämisfunktiolle, ja tulokseksi saatava arvo palautetaan.
- Jos yhdistämisfunktiota ei ole määritetty, toinen arvo palautetaan.
- Toinen arvo palautetaan.
Valinnainen type
-parametri ilmaisee valintafunktion palauttaman binaarimuodon tyypin. Joko type any
, type list
tai type binary
voidaan määrittää. Jos parametria type
ei määritetä, type any
käytetään kohdetta . Jos type list
tai type binary
on käytössä, järjestelmä saattaa pystyä palauttamaan puskuroitavan arvon tai list
suoratoistoarvonbinary
, mikä voi vähentää muodon lukemiseen tarvittavan muistin määrää.
Esimerkki 1
Lue tavuluettelo, jossa ensimmäinen tavu määrittää elementtien määrän.
Käyttö
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length)
)
in
listFormat(binaryData)
Tuloste
{3,4}
Esimerkki 2
Lue tavuluettelo, jossa ensimmäinen tavu määrittää elementtien määrän, ja säilytä ensimmäinen luettu tavu.
Käyttö
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.Record([
length = length,
list = BinaryFormat.List(BinaryFormat.Byte, length)
])
)
in
listFormat(binaryData)
Tuloste
[length = 2, list = {3, 4}]
Esimerkki 3
Lue tavuluettelo, jossa ensimmäinen tavu määrittää elementtien määrän käyttämällä virtautusluetteloa.
Käyttö
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length),
type list
)
in
listFormat(binaryData)
Tuloste
{3, 4}
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle