问题标签 [function-declaration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
144 浏览

haskell - 为什么我会收到类型错误?

在 Haskell 中,我在定义函数时遇到了一些问题,因为我的参数类型与所需的类型不匹配。

例如,我想编写一个函数,它接受一个n :: Int并产生从 1 到 的floor平方根的整数列表n。因此,我将有一个功能,例如:

最初我将函数定义如下:

当我加载脚本时,出现类型不匹配的错误消息。但是,我不确定我是否不匹配sqrt函数或floor函数的类型。错误信息如下:

有人可以向我解释导致错误的原因以及如何修复它吗?

0 投票
1 回答
249 浏览

javascript - 所有函数表达式突然不被识别为函数

我有一个包含许多函数表达式的大量 javascript 文件。突然控制台给了我以下错误:

在 IE 中

在火狐中

这就是我调用函数的方式:

这是功能:

这发生在所有函数表达式上。如果我将一个更改为函数声明,它可以工作,但是在其中的一些其他函数表达式调用上会失败。有没有搞错?

0 投票
1 回答
867 浏览

c++ - C++ 成员函数未声明错误,当它看起来是

我收到错误:

cs163hw1.cpp:41:24: 错误:没有在类“menutype”中声明的“int menutype::run_prog()”成员函数</p>

main.cpp:18:7: 错误:“struct menutype”没有名为“run_prog”的成员</p>

尝试使用相关代码(跨越 appriprait .cpp 和 .h 文件)编译我的程序时:

我不知道为什么会这样,有什么猜测吗?

0 投票
2 回答
720 浏览

c++ - 我的模板类中的函数出现错误 C4430、C2143 和 C2244

我正在尝试创建一个采用模板类型并将其添加到列表/数组末尾的函数,但我遇到了一个我似乎找不到解决方法的错误。我是模板新手,所以我不确定这是否是我使用模板或其他东西的问题。

这是我拥有的代码的相对部分:

我收到这些错误:

对此的任何帮助将不胜感激!

0 投票
1 回答
283 浏览

c++ - 如何在 C++ 中声明具有定义 func(cv::Mat &img) 的函数

你如何声明这样定义的函数:

更多细节:

我在“main”函数下方的 main.cpp 文件中定义了函数“func”。编译器抱怨它不知道函数“func”是什么,所以我尝试将原型放在“main”函数之上。

我试过了

但这没有用。

0 投票
3 回答
2927 浏览

java - 让 java 函数接受集合或数组

我正在尝试编写一个函数,该函数需要一些字符串并对其进行处理。

我要做的唯一一件事就是对字符串进行循环。现在我最终得到了一个尴尬的结构

感觉多余,因为

对于 String[] 类型的 myStrings 来说,这将是完全有效的代码。

是否有一个我可以让 foo 接受的类同时允许集合和数组?

0 投票
0 回答
121 浏览

c++ - 尾随返回类型语法是否应该是所有函数的默认语法?

可能重复:
替代函数语法

在复杂的函数模板中,有时需要 C++11 尾随返回类型语法才能decltype在参数上使用,否则会为时已晚:

从现在开始总是使用这种新语法会不会更加一致,即使对于普通函数也是如此?

然后我们只需要处理一种函数语法而不是现代代码中的两种,我们可以弃用旧语法,就像我们弃用隐式 int 或隐式 using 声明一样。

为了使新语法更具吸引力,我们可以auto用一个更好的名称替换:

突然之间main,函数式程序员的签名看起来非常有吸引力:

我忽略了什么吗?尾随返回类型语法是否以某种我没有想到的方式较差?

0 投票
2 回答
231 浏览

c++ - 如何将指针作为数组参数传递?

我有一个第三方库,它的功能如下:

如果我写这样的东西:

但是我不想在堆栈上声明这么大的数组(这在 OS 内核环境中会非常危险)。所以我必须做这样的事情:

我无法更改 foo 的实现。我应该怎么做?

==================

这个问题已经解决。我的真实代码是这样的:

标准不隐式接受从 void* 到 char* 的转换。所以下面的代码有效:

0 投票
1 回答
199 浏览

javascript - 函数声明或函数表达式

我在块范围内定义函数时遇到了问题。考虑以下程序:

我希望这个程序能够提醒Merry Christmas!。但是在 Firefox 中是给了我以下内容ReferenceError

在 Opera 和 Chrome 上,它会像我预期的那样提醒问候语。

显然,Firefox 将块作用域内的函数视为FunctionExpressionOpera 和 Chrome 将其视为FunctionDeclaration.

我的问题是为什么 Firefox 的行为不同?哪种实现更合乎逻辑?哪一个符合标准?

我知道 JavaScript 中的声明被提升了,因此如果在同一范围内的两个或多个不同块中声明相同的函数,则会出现名称冲突。

但是,每次声明函数时重新声明函数不是更合乎逻辑,以便您可以执行以下操作:

除了解决我上面描述的块范围问题之外,我认为这将非常有用。

0 投票
1 回答
181 浏览

lua - 从其他函数中引用早期和后期函数?

我有一个 Lua 脚本,它提供了一个交互式文本菜单,用于在实际工作之前配置脚本。有一个main_menu()函数,它有用户可以选择的选项,每个选项调用一个不同的submenu()函数。这些不同的submenu()函数中的每一个都做他们的事情,然后他们回到(他们调用)这个main_menu()函数。最后,每个函数都有一个参数settings传递给它,这是一个设置表。

事情看起来像这样:

问题是attempt to call nil每当(据我所知)一个函数调用稍后在脚本中定义的另一个函数时,我都会遇到错误。所以如果像上面的例子一样,我定义submenu()然后 调用没有问题main_menu(),但不能调用。main_menu()submenu()submenu()main_menu()

FWIW,这是在 Minecraft 的 ComputerCraft mod 中完成的。