我的Alexa技能中有一个随机数函数,它使用Amazon.number插槽类型,如下所示的意图模式。
"slots": [
{
"name": "NumOne",
"type": "AMAZON.NUMBER"
},
{
"name": "NumTwo",
"type": "AMAZON.NUMBER"
}
],
我得到用户想要使用的数字,并将它们分别放入Num1和Num2,如下我的函数所示。
var Num1 = this.event.request.intent.slots.NumOne;
var Num2 = this.event.request.intent.slots.NumTwo;
var result = Math.floor(Math.random() * (Num2 - Num1) + Num1);
// Create speech output
//var speechOutput = "The random number is: " + result;
var speechOutput = Num1 + Num2;
var cardTitle = "Random Number between " + Num1 + "and " + Num2;
//response.tellWithCard(speechOutput, cardTitle, speechOutput);
this.emit(':tell', speechOutput, cardTitle, speechOutput);
然而,当我打印Num1和Num2时,它们都显示为[object object],这意味着我不能用它们进行任何计算,因为结果总是为NaN。
{
"version": "1.0",
"response": {
"shouldEndSession": true,
"outputSpeech": {
"type": "SSML",
"ssml": "<speak> [object Object][object Object] </speak>"
}
},
"sessionAttributes": {}
}
有没有办法修复这个问题,使Num1和Num2有数字值?
我把它留了一会儿,想了想问题,发现我所需要做的就是改变
var Num1 = this.event.request.intent.slots.NumOne;
至
var Num1 = this.event.request.intent.slots.NumOne.value;
这从槽中获得值,而不仅仅是槽类型(这是object,因此返回object object的原因)。
我似乎不知道为什么当我使用lambda时需要从方法返回一些东西时,我在IDE上会出现这个错误。 非常感谢。
问题内容: 我想了解为什么下面的代码片段无法编译。将函数接受为可能具有任何返回类型的函数参数的Go方法是什么? 播放:https://play.golang.org/p/CqbuEZGy12 我的解决方案基于Volker的答案: 播放:https://play.golang.org/p/waOGBZZwN7 问题答案: 你绊倒了围棋新人一个非常普遍的误解:空接口并 不能 意味着“任何类型”。确实不
出于我无法控制的原因,我必须在我的C代码中实现这个函数: 调用此函数时,编译器是否忽略它,或者是否仍然进行调用?例如: 两行代码的执行时间是相同的,还是第一行需要更长的时间?
线程“main”中出现异常,请重试(是/否):java。util。非接触性异常 在爪哇。util。扫描仪。throwFor(未知来源) 在爪哇。util。扫描仪。下一个(未知源) 在支票兑换代码。main(CheckCurrencyCode.java:69) 我试图从用户那里输入y/n,当我运行代码时,我得到了上面的异常。
问题内容: Python如何接受用户输入,并验证? 问题答案: 完成此操作的最简单方法是将方法置于循环中。当输入错误时使用,当你感到满意时使用。 当你的输入可能引发异常时 使用和检测用户何时输入了无法解析的数据。 实施你自己的验证规则 如果要拒绝Python可以成功解析的值,则可以添加自己的验证逻辑。 结合异常处理和自定义验证 以上两种技术都可以组合成一个循环。 将其全部封装在一个函数中 如果你需
问题内容: Python在函数的每次调用之间在控制台输出中插入一个空行,但我不希望这样做(即,我希望提示位于控制台中的连续行上,而不是由空行分隔)。有没有办法做到这一点?我试着以为它可能像函数一样工作,但事实并非如此… 码: 输出: 所需的输出: 编辑: 正如其他人在评论部分中指出的那样,除了在Spyder IDE中使用IPython接口之外,这个问题对我来说都是不可重现的。如果有人在Spyder