BinaryFormat.Choice
ऐसे बाइनरी स्वरूप को लौटाता है जो पहले ही पढ़े गए मान के आधार पर अगले बाइनरी स्वरूप का चयन करता है.
Syntax
BinaryFormat.Choice(
binaryFormat as function,
chooseFunction as function,
optional type as type,
optional combineFunction as function
) as function
Remarks
ऐसे बाइनरी स्वरूप को लौटाता है जो पहले ही पढ़े गए मान के आधार पर अगले बाइनरी स्वरूप का चयन करता है. इस फ़ंक्शन द्वारा उत्पन्न बाइनरी मान इन अवस्थाओं में काम करता है:
binaryFormat
पैरामीटर द्वारा निर्दिष्ट किए गए बाइनरी स्वरूप का उपयोग मान को पढ़ने के लिए किया जाता है.chooseFunction
पैरामीटर द्वारा निर्दिष्ट किए गए चॉइस फ़ंक्शन में मान को पास किया जाता है.- चॉइस फ़ंक्शन मान का निरीक्षण करता है और एक द्वितीय बाइनरी स्वरूप लौटाता है.
- द्वित ीय बाइनरी स्वरूप का उपयोग द्वितीय मान को पढ़ने के लिए किया जाता है.
- यदि संयोजन फ़ंक्शन निर्दिष्ट किया गया होता है, तो पहले और दूसरे मानों को संयोजन फ़ंक्शन में पास किया जाता है और परिणामित मान को लौटाया जाता है.
- यदि संयोजन फ़क्शंन निर्दिष्ट नहीं किया गया होता है, तो द्वितीय मान को लौटाया जाता है.
- द्वितीय मान को लौटाया गया.
type
पैरामीटर उस बाइनरी स्वरूप को इंगित करता है जो चॉइस फ़ंक्शन द्वारा लौटाया जाएगा. या तो type any
, type list
या type binary
निर्दिष्ट किए जा सकता हैं. यदि type
पैरामीटर निर्दिष्ट नहीं किया गया होता है, तो type any
उपयोग किया जाता है. यदि type list
या type binary
का उपयोग किया गया होता है, तो सिस्टम बफ़र्ड के बजाए एक स्ट्रीमिंग binary
या list
मान को लौटा सकता है, जो स्वरूप को पढ़ने के लिए आवश्यक स्मृति की मात्रा को कम कर सकता है.
Examples
Example #1
बाइट्स की सूची पढ़ें, जहाँ तत्वों की संख्या पहली बाइट से निर्धारित होती है.
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length)
)
in
listFormat(binaryData)
Result:
{3, 4}
Example #2
बाइट्स की सूची पढ़ें, जहाँ तत्वों की संख्या पहली बाइट से निर्धारित होती है और पढ़ी गई पहली बाइट को संरक्षित करें.
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)
Result:
[length = 2, list = {3, 4}]
Example #3
बाइट्स की सूची पढ़ें, जहाँ तत्वों की संख्या स्ट्रीमिंग सूची का उपयोग करके पहली बाइट से निर्धारित होती है.
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length),
type list
)
in
listFormat(binaryData)
Result:
{3, 4}
Category
Binary Formats.Controlling what comes next