Julia在脚本中共享变量

莫格林

我正在使用julia脚本,其中定义了两个需要共享变量的函数。最佳做法是什么?我应该只使用全局变量,还是可以使用朱莉娅特定的解决方法?

BogumiłKamiński

通常,您会按照Benoit的建议将变量传递给两个函数。

但是,如果出于某种原因需要避免使用它,通常是这种情况,例如,当将函数传递给应该依赖于某些外部参数的优化例程时,请使用闭包而不是使用全局变量。通常const,出于性能原因,在Julia中应避免使用全局变量。

这是一个例子:

没有关闭:

julia> using Optim, BenchmarkTools

julia> c = 10
10

julia> f(x) = (x-c)^2
f (generic function with 1 method)

julia> @btime optimize(f, -100, 100);
  5.500 μs (235 allocations: 3.81 KiB)

现在与关闭相同。首先我使用let

julia> @btime let c = 10
       f(x) = (x-c)^2
       optimize(f, -100, 100)
       end;
  139.605 ns (2 allocations: 176 bytes)

您还可以使用一个函数:

julia> function wrap()
       c = 10
       f(x) = (x-c)^2
       optimize(f, -100, 100)
       end
wrap (generic function with 1 method)

julia> @btime wrap();
  139.100 ns (2 allocations: 176 bytes)

此外,如果c是一个const事情会也快(启动此一新的朱莉娅会话):

julia> using Optim, BenchmarkTools

julia> const c = 10
10

julia> f(x) = (x-c)^2
f (generic function with 1 method)

julia> @btime optimize(f, -100, 100);
  138.603 ns (2 allocations: 176 bytes)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何定义稍后在 Julia 中共享的全局变量

来自分类Dev

在角度指令中共享变量

来自分类Dev

Jenkins:在MultiJob中共享变量

来自分类Dev

在Google App脚本中共享日历

来自分类Dev

在整个包中共享全局变量

来自分类Dev

在容器视图中共享公共变量

来自分类Dev

javascript 对象中共享变量的最佳实践

来自分类Dev

如何在Jenkins的工作中共享脚本?

来自分类Dev

如何在Web会话中共享静态变量

来自分类Dev

如何在'joblib'Python库中共享变量

来自分类Dev

如何在单例类中共享变量

来自分类Dev

Laravel 5-在服务提供商中共享变量

来自分类Dev

如何在单例类中共享变量

来自分类Dev

如何在并发JSF查询中共享变量?

来自分类Dev

Puppet:如何在模块中共享公共资源/变量

来自分类Dev

类的两个实例在 Python 中共享相同的变量

来自分类Dev

在Shell脚本之间共享变量

来自分类Dev

在Gunicorn中共享内存?

来自分类Dev

在Angular中共享数据

来自分类Dev

在AngularJs中共享数据

来自分类Dev

在两个cpp文件的标头中共享定义的全局变量

来自分类Dev

在多线程中共享数据-非静态变量可以吗?

来自分类Dev

如何使用Groovy在多个黄瓜步骤定义文件中共享变量

来自分类Dev

在两个集合中共享一个参考变量

来自分类Dev

如何在并行的Bitbucket管道步骤中共享环境变量?

来自分类Dev

如何使用Groovy在多个黄瓜步骤定义文件中共享变量

来自分类Dev

在多线程过程中共享数据-非静态变量可以吗?

来自分类Dev

C#:在2个不同的线程中共享局部变量

来自分类Dev

如何在angular v4 ts中共享变量并跟踪它在多个组件中的变化

Related 相关文章

热门标签

归档