BinaryFormat.Choice
Sözdizimi
BinaryFormat.Choice(binaryFormat as function, chooseFunction as function, optional type as nullable type, optional combineFunction as nullable function) as function
Hakkında
Önceden okunmuş bir değere göre bir sonraki ikili biçimi seçen ikili biçimi döndürür. Bu işlev tarafından üretilen ikili biçim değeri aşamalar halinde çalışır:
- parametresi tarafından
binaryFormat
belirtilen ikili biçim, bir değeri okumak için kullanılır. - değer parametresi tarafından belirtilen choice işlevine
chooseFunction
geçirilir. - Choice işlevi değeri inceler ve ikinci bir ikili biçim döndürür.
- İkinci ikili biçim, ikinci bir değeri okumak için kullanılır.
- Combine işlevi belirtilirse, birinci ve ikinci değerler combine işlevine geçirilir ve sonuçta elde edilen değer döndürülür.
- Combine işlevi belirtilmezse, ikinci değer döndürülür.
- İkinci değer döndürülür.
İsteğe bağlı type
parametre, choice işlevi tarafından döndürülecek ikili biçimin türünü gösterir. , type any
type list
veya type binary
belirtilebilir. type
Parametresi belirtilmezse kullanılırtype any
. veya kullanılıyorsatype list
, sistem arabelleğe alınan akış veya değer yerine akış binary
veya list
değer döndürebilir ve bu da biçimi okumak için gereken bellek miktarını type binary
azaltabilir.
Örnek 1
Öğelerin sayısının ilk bayt tarafından belirlendiği bayt listesini okuyun.
Kullanım
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length)
)
in
listFormat(binaryData)
Çıkış
{3,4}
Örnek 2
Öğelerin sayısının ilk bayt tarafından belirlendiği bayt listesini okuyun ve ilk bayt okumasını koruyun.
Kullanım
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)
Çıkış
[length = 2, list = {3, 4}]
Örnek 3
Akış listesi kullanarak öğelerin sayısının ilk bayt tarafından belirlendiği bayt listesini okuyun.
Kullanım
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length),
type list
)
in
listFormat(binaryData)
Çıkış
{3, 4}
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin