首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BotBuilder-位置和位运算符

BotBuilder-位置和位运算符
EN

Stack Overflow用户
提问于 2018-03-08 14:42:41
回答 1查看 92关注 0票数 0

我经常使用BotBuilder-Location,它工作得很好,但我不明白它如何检查所需的字段。我不太擅长恶毒操作:

locationDialog.LocationRequiredFields.streetAddress,locationDialog.LocationRequiredFields.locality,locationDialog.LocationRequiredFields.region,locationDialog.LocationRequiredFields.region,locationDialog.LocationRequiredFields.postalCode,,locationDialog.LocationRequiredFields.country

如果我转到node_modules/botbuilder-location/lib/dialogs/required-fields-dialog.js,我可以看到这个自调用函数:

代码语言:javascript
复制
(function (LocationRequiredFields) {
    LocationRequiredFields[LocationRequiredFields["none"] = 0] = "none";
    LocationRequiredFields[LocationRequiredFields["streetAddress"] = 1] = "streetAddress";
    LocationRequiredFields[LocationRequiredFields["locality"] = 2] = "locality";
    LocationRequiredFields[LocationRequiredFields["region"] = 4] = "region";
    LocationRequiredFields[LocationRequiredFields["postalCode"] = 8] = "postalCode";
    LocationRequiredFields[LocationRequiredFields["country"] = 16] = "country";
})(LocationRequiredFields = exports.LocationRequiredFields || (exports.LocationRequiredFields = {}));

你能用简单的轮廓来解释一下它是如何工作的吗?我在这里查看了BotBuilder-Location文档和GitHub上的问题。

EN

回答 1

Stack Overflow用户

发布于 2018-03-08 23:50:05

这里有两件事:

  1. 这段代码最初是用类型记录编写的,然后转换成javascript。javascript没有枚举。因此,当类型记录枚举被转换为javascript时,它们就变成了hashmap,这就是您在问题中看到的函数。
  2. 选择了与每个字段相关联的数字,以便将其归为一组位。看看他们是如何跟随0124-8 16..。你会在一个字节中看到的模式?这样就可以将它们“打包”到一个较小的包(例如一个字节)中进行验证。我不太清楚它是如何工作的,但是,例如,如果所有必需的字段都被填充,那么位数将是111111或小数点31。如果发送的位数不是31,就会有一个需要填充的字段。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49175805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档