标签: nested-function

函数内部的函数

function1()
    {
        statement1;
        statement2;
        function2()
        {
                statement3;
                statement3;
        }
    } 
Run Code Online (Sandbox Code Playgroud)

为什么控制不进入function2,即使两个函数的返回类型相同

c gcc nested-function

3
推荐指数
2
解决办法
254
查看次数

JS:嵌套函数获取外部函数参数的副本?

因此,通过以下代码,我向自己证明了嵌套函数确实获得了外部函数的参数的副本:

    var o = {};
    (function(a,b,c,x){
        x.f = function(){
            return a.toString()+b.toString()+c.toString();
        }
    })(7,4,2,o);
    o.f();
Run Code Online (Sandbox Code Playgroud)

代码产生

    742
Run Code Online (Sandbox Code Playgroud)

这意味着该o.f函数从匿名函数中获取a,b和c的副本.否则,我会得到undefinedundefinedundefined

我的问题是,

  • 首先,这总是如此吗?还是有严格的情况?(比如,它必须是一个对象吗?等)
  • 另外,在javascript中还有哪些其他类型的模糊范围?我很想知道(即第三次迭代怎么样?)
  • 最后,我完全可以阅读一篇阐述javascript范围高级概念的文档.有谁知道任何好的?

javascript scope nested-function

3
推荐指数
1
解决办法
9300
查看次数

映射单个函数比两次映射两个单独的函数慢?

下面的例子似乎暗示了我不明白的运行时优化

\n

谁能解释这种行为以及它如何适用于更一般的情况?

\n

例子

\n

考虑以下简单(示例)函数

\n
def y(x): # str output\n    y = 1 if x else 0\n    return str(y)\n\ndef _y(x): # no str\n    y = 1 if x else 0\n    return y\n
Run Code Online (Sandbox Code Playgroud)\n

假设我想将函数应用于y列表中的所有元素

\n
l = range(1000) # test input data\n
Run Code Online (Sandbox Code Playgroud)\n

结果

\n

操作map必须遍历列表中的所有元素。将函数分解为双map精度函数明显优于单个map函数,这似乎违反直觉

\n
%timeit map(str, map(_y, l))\n1000 loops, best of 3: 206 \xc2\xb5s per loop\n\n%timeit map(y, l)\n1000 loops, best of 3: 241 \xc2\xb5s per loop\n …
Run Code Online (Sandbox Code Playgroud)

python iteration performance nested-function python-2.7

3
推荐指数
1
解决办法
393
查看次数

如何在Lua中的函数内调用函数?

我有这个代码:

function test()
    function awesome()
        print("im awesome!")
    end

    function notawesome()
        print("im not awesome.")
    end

    function notevenawesome()
        print("im not even awesome...")
    end
end

test().notawesome()
Run Code Online (Sandbox Code Playgroud)

当我运行它时,控制台打印

15:尝试索引一个 nil 值

我正在试图做的是调用函数notawesome()函数内试验(+) ,我该怎么做?

lua function nested-function

3
推荐指数
2
解决办法
2581
查看次数

在PLSQL中使用嵌套函数的正确方法是什么?

我想知道在PLSQL中使用嵌套函数的正确方法.在下面的代码片段中,函数'to_number'工作正常,但我的两个嵌套函数不能以相同的方式使用.

Declare
  Tettt Number;
  Function lolazo(pigt Number, p_Fecha_Fact Date)
  Return Number Is
    resultado number;
  Begin
    Select Vp.Valor
    into resultado
    from valor_precio vp
    Where Vp.Id_Tipo_Cargo = 103
      And Vp.Id_Grupo_Precio = pigt
      and vp.f_inicio_precio =
        (select max(vp2.f_inicio_precio)
         From Valor_Precio Vp2
         Where Vp2.Id_Grupo_Precio = pigt
           And Vp2.F_Inicio_Precio < p_fecha_fact
           And Vp2.Id_Tipo_Cargo = 103 );
    Return Resultado;
  End Lolazo;
  Function Multi(Uno Number, Dos Number) Return Number Is
  Begin
    return uno*dos;
  End Multi;
Begin
  Select to_number('123')
  Into Tettt
  From Dual;

--  Doesn't work!
--  Select …
Run Code Online (Sandbox Code Playgroud)

oracle plsql function nested-function

2
推荐指数
1
解决办法
4736
查看次数

将参数从Parent函数传递给嵌套函数Python

这是我的代码:

def f(x):
    def g(n):
        if n < 10:
            x = x + 1
            g(n + 1)
    g(0)
Run Code Online (Sandbox Code Playgroud)

当我评估f(0)时,会出现错误"在赋值之前引用x".

但是,当我使用"print x"而不是"x = x + 1"时,它会起作用.

似乎在g的范围内,我只能使用x作为"使用事件"而不是"绑定事件".我想问题是f只传递给g的值为g.

我是否理解正确?如果没有,有人可以解释为什么在引用前没有定义"x = x + 1"的左侧?

谢谢

python arguments nested-loops nested-function

2
推荐指数
1
解决办法
3019
查看次数

在main()中定义一个函数

出于好奇,main()在C中定义一个函数是否被认为是不好的做法?

我正在编写的当前程序的问题是我有20个指向结构内部main()的指针(指针,而不是结构本身,那些在其他文件中),我有一块需要的代码块用不同的参数调用几次,它必须能够修改任何指针.我发现的唯一解决方案(我是C中的新手)是在其中定义一个main()具有正确范围的函数来修改任何指针.

c conventions nested-function

2
推荐指数
2
解决办法
106
查看次数

Swift中的嵌套函数

我学得很快,想要了解如何制作嵌套函数

extension Auto {
    // MARK: Auto extensions
    func isRegistred() -> Bool {
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我想验证一个Auto是否已经注册我必须使用这一行如果Auto.isRegistered() 自动注册了我也希望能够验证它是否是一个新的,所以我想添加一个isNew()功能.是否有可能增加一个嵌套函数,这样我仍然可以验证,如果汽车所注册Auto.isRegistered()并使用Auto.isRegistered().isNew(),以验证它是一个注册的汽车,一个新的?就像是

extension Auto {
    // MARK: Auto extensions
    func isRegistred() -> Bool {
        func isNew() -> Bool{
            return true
        }
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)

nested-function swift

2
推荐指数
1
解决办法
956
查看次数

解析Python中的嵌套函数

line = "add(multiply(add(2,3),add(4,5)),1)"

def readLine(line):
    countLeftBracket=0
    string = ""
    for char in line:
        if char !=")":
            string += char
        else:
            string +=char
            break

    for i in string:
        if i=="(":
            countLeftBracket+=1

    if countLeftBracket>1:
        cutString(string)
    else:
        return execute(string)

def cutString(string):
    countLeftBracket=0

    for char in string:
        if char!="(":
            string.replace(char,'')
        elif char=="(":
            string.replace(char,'')
            break

    for char in string:
        if char=="(":
            countLeftBracket+=1

    if countLeftBracket>1:
        cutString(string)
    elif countLeftBracket==1:
        return execute(string)

def add(num1,num2):
    return print(num1+num2)

def multiply(num1,num2):
    return print(num1*num2)

readLines(line)
Run Code Online (Sandbox Code Playgroud)

我需要执行整个行字符串。我尝试将括号内的每个函数一一剪切并用结果替换它们,但我有点迷失了。不知道如何继续,我的代码收到错误:

  File "main.py", line 26, in cutString …
Run Code Online (Sandbox Code Playgroud)

python parsing nested-function

2
推荐指数
1
解决办法
1516
查看次数

关闭本地值

我在Google 的 Python styleguide 中阅读了以下内容

“除非关闭本地值,否则避免嵌套函数或类”。

“关闭本地值”是什么意思?

完整的相关部分如下:

2.6 嵌套/本地/内部类和函数

当用于关闭局部变量时,嵌套局部函数或类很好。内部课程很好。

2.6.1 定义

类可以在方法、函数或类中定义。函数可以在方法或函数中定义。嵌套函数对封闭作用域中定义的变量具有只读访问权限。

2.6.2 优点

允许定义仅在非常有限的范围内使用的实用程序类和函数。非常ADT-y。通常用于实现装饰器。

2.6.3 缺点

嵌套或本地类的实例不能被腌制。嵌套的函数和类不能直接测试。嵌套可以使您的外部函数更长且可读性更低。

2.6.4 决定

他们没有问题,但有一些警告。避免嵌套函数或类,除非关闭本地值。不要嵌套函数只是为了对模块的用户隐藏它。相反,在模块级别用 _ 前缀它的名称,以便它仍然可以被测试访问。

python styles inner-classes nested-function google-style-guide

2
推荐指数
1
解决办法
284
查看次数