Julia 1.0 UndefVarError - 变量范围

2023-12-11

我将从 Julia 0.7 升级到 1.0。看来 Julia 对变量范围的规则从 0.7 更改为 1.0。例如,我想运行一个像这样的简单循环:

num = 0
for i = 1:5
    if i == 3
        num = num + 1
    end
end
print(num)

在 Julia 0.7 中(以及大多数其他语言),我们可以期望num = 1循环之后。然而,这会招致UndefVarError: num not defined在朱莉娅 1.0 中。我知道通过使用let我可以做这个

let
num = 0
for i = 1:5
    if i == 3
        num = num + 1
    end
end
print(num)
end

它将打印出 1。但我确实想要得到num = 1循环外和let堵塞。一些答案建议将所有代码放在let块,但它会带来其他问题,包括UndefVarError同时逐行测试。有什么方法可以代替使用let阻塞?谢谢!


这是讨论的here.

Add global如下所示在循环内num多变的。

num = 0
for i = 1:5
    if i == 3
        global num = num + 1
    end
end
print(num)

在 Julia 1.0.0 REPL 中运行:

julia> num = 0
0
julia> for i = 1:5
           if i == 3
               global num = num + 1
           end
       end
julia> print(num)
1

Edit

对于刚刚接触 Julia 的人来说,应该注意 vasja 在下面的答案中所做的精彩评论:

请记住,在函数内部您不会使用全局,因为函数内部的作用域规则如您所期望的那样:

请参阅该答案,了解对相同代码使用函数而不会出现范围问题的好示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Julia 1.0 UndefVarError - 变量范围 的相关文章

  • 如何在C++中构建复合for循环?

    是另一个fora 的计数器部分 第三部分 允许循环for环形 在我尝试优雅地编写代码来生成直角三角形 我写了这个 但它无法编译 include
  • @distributed 似乎有效,函数返回很不稳定

    我正在学习如何在 Julia 中进行并行计算 我在用着 sync distributed在 3x 嵌套的开始处for循环并行化事物 参见底部的代码 从线路上看println errCmp row col 我可以观察数组的所有元素errCmp
  • 作用域对象的 Xtext 示例

    我正在寻找一个示例 在 XText 中 说明如何在用户定义的对象成员上实现代码完成 据我所知 我需要使用 IScope 但所有这些如何连接在一起还不清楚 鉴于trait是用户定义的类型 我如何构建语法来编码完成 验证其中包含的方法Strin
  • 在 python 中检查堆栈中的局部变量

    我编写了一个小函数 它在堆栈中查找一级并查看其中是否有变量 但是我如何将这个函数变成一个可以在堆栈中一直查找直到找到一个局部变量并购买某个特定名称的函数 import inspect def variable lookup variable
  • 在循环内重新声明 for 循环变量时出错

    考虑以下 C 程序片段 for int i 0 i lt 5 i int i 10 lt Note the local variable printf d i 它编译时没有任何错误 并且在执行时给出以下输出 1010101010 但如果我用
  • Javascript 闭包问题

    所以 我仍在阅读 Apress Pro Javascript 技术 但我在闭包方面遇到了麻烦 正如约翰 雷西格所说 闭包允许您引用父函数中存在的变量 然而 它在创建变量时并不提供变量的值 它提供父函数中变量的最后一个值 这是最常见的问题 您
  • 从 Julia 中的文本文件读取数据矩阵

    我有一个包含矩阵的文本文件 我想在朱莉娅中将其作为矩阵来阅读 文本文件如下 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 在 matlab 中 您可以执行以下操作来创建矩阵M
  • 用以前的非缺失值填充“缺失”值的有效方法是什么?

    我有一个向量 using Missings v allowmissing rand 100 v rand 100 lt 0 1 missing 最好的填充方式是什么v与最后一个非缺失值 现在 for i val in enumerate v
  • 如何给DArray的元素设置值?

    我正在探索 Julia 的并行计算并尝试了以下方法 a dzeros 5 a 1 5 但刚刚收到此错误 setindex not defined for DArray Float64 1 Array Float64 1 嗯 我以为手册上说s
  • JavaScript 闭包与匿名函数

    我和我的一个朋友目前正在讨论 JS 中什么是闭包 什么不是 我们只是想确保我们真正正确地理解它 我们以这个例子为例 我们有一个计数循环 想要在控制台上延迟打印计数器变量 因此我们使用setTimeout and closures捕获计数器变
  • 循环更改多个数据帧

    例如 我有这三个数据集 就我而言 它们更多并且有很多变量 data frame1 lt data frame a c 1 5 3 3 2 b c 3 6 1 5 5 c c 4 4 1 9 2 data frame2 lt data fra
  • 在 Python 2.6 中访问外部作用域

    比如说 我有一些带有变量的作用域 并且在此作用域中调用的函数想要更改一些不可变变量 def outer s qwerty n 123 modify def modify s abcd n 456 是否有可能以某种方式访问 外部范围 就像是n
  • Javascript/jQuery 变量未给出预期值

    和我之前的其他人一样 我也在 Javascript 的范围内苦苦挣扎 那并试图阅读该死的东西 我已经检查了关于这个问题的一些先前的线程 但我似乎无法让它们正确地应用于我的问题 在下面的示例中 我想操纵中的值tagsArr数组 一旦数组已完全
  • Bash - 在 perl 正则表达式中使用变量以及匹配组

    这是我在 stackoverflow 上的第一篇文章 如果我错过了一些重要的内容 请原谅我 我目前遇到以下问题 目标是根据我准备的文件列表动态替换端口号find 这些文件中的所有端口均以数字 4 开头 有 5 位数字 现在是棘手的部分 我只
  • PowerShell Group-Object 不再将对象拆分为固定大小的集合

    我在一个脚本中写了这个 我认为该脚本运行良好 但似乎已停止工作 testList object 1 object 2 object 3 object 4 object 5 counter 0 maxSize 2 groupedList te
  • Java:直接从同一类的另一个实例访问私有字段

    我正在写一个equals Object obj 一个类的函数 我发现可以访问私有字段obj来自来电者 因此 不要使用 getter Odp other Odp obj if other getCollection contains ftw
  • Python 3在for循环中更改字典键的值不起作用

    我的 python 3 代码没有按预期工作 def addFunc x y print x y def subABC x y z print x y z def doublePower base exp print 2 base exp d
  • 在 Julia 中解压缩元组数组

    假设我有一个元组数组 arr 1 2 3 4 5 6 使用 python 我可以做zip arr 1 3 5 2 4 6 朱莉娅中与此等效的是什么 作为 splatting 的替代方案 因为这非常慢 您可以执行以下操作 unzip a ma
  • 如何为 jQuery 插件设置私有变量?

    我想创建一个简单的插件 它使用元素的文本作为默认值 或者您可以在调用插件时设置此值 但是 如果我不设置该值 并为多个元素调用插件 则默认值会成倍增加 function fn reText function options var setti
  • PostgreSQL:使用for循环迭代表行,根据当前行检索列值

    我有以下2张表 CREATE TABLE salesperson t salespersonid numeric 4 0 NOT NULL salespersonname character varying 25 salespersonte

随机推荐

  • 将数据帧列表传递给 lm() 并查看结果

    我有三个数据帧 dfLON dfMOS 和 dfATA 每个都有相同的变量 y是连续变量 a b和c是二元分类变量 还有一些NA 我想建立单独的线性回归模型 每个数据集一个 使用我当前的代码 我已成功创建数据帧列表并将其传递到 lm 中 但
  • 测试时管道损坏(写入失败)> 允许的最大内容长度[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个测试来验证我的服务器拒绝大于 1MB 的请求 Scenario large requests are rejected Given url https my server com anythin
  • 添加带有材质表的组件会更改 Material-UI AppBar 样式

    我的应用程序正在使用 Material UI 和材料表 使用 ThemeProvider 作为子项在 index js 文件中应用全局主题 然后再有子项
  • 将 int 传递给函数,然后使用该 int 创建数组

    我正在尝试为我的 openGL 项目创建一个textureLoader 类 但无法在类构造函数内初始化纹理数组 因为该数组不会接受任何内容 除非它是 const int 给你画一幅简单的图画 myFunction NUM GLuint te
  • Laravel:使用 try...catch 和 DB::transaction()

    我们都用DB transaction 对于多个插入查询 这样做时 应该try catch放在里面还是包裹起来 是否还需要包括一个try catch如果出现问题 交易什么时候会自动失败 Sample try catch包装交易 try cat
  • HTML 画布悬停文本

    我有一个 HTML 画布 其中包含所有不同大小的不同形状 它是通过解析外部文件中的信息来构建的 我想知道如何制作 以便将鼠标悬停在每个形状上都会显示其唯一的名称 我找到了有关如何在鼠标悬停时显示文本的资源whole画布 但我需要每个单独的形
  • 以编程方式推广 QWidget

    我有一个 ui 文件 其中包含QProgressBar in a QWidget 此外 我创建了继承自的自定义进度条组件QProgressBar 在QT Designer中 我可以推广QProgressBar小部件到我的自定义小部件 有没有
  • 计算数组中的重复项[重复]

    这个问题在这里已经有答案了 我正在尝试显示数组的内容 但如果存在重复项 则仅打印名称和数字 例如 myArr apple apple orange apple banana orange pineapple 会显示 apple 3 oran
  • 无法使用 TesseractOCRConfig Apache Tika 提取扫描的 pdf

    我的 pdf 包含扫描图像 我想从中提取文本 我尝试过的 我尝试使用 AutoDetectParser 但没有输出 我按照中提供的解决方案进行操作Apache Tika 提取扫描的 PDF 文件还有 Apache Tika Jira 位于h
  • 使用 python 脚本发送嵌入图像的 html 电子邮件

    我是Python新手 我想发送基于 html 的电子邮件 并在电子邮件正文的左上角嵌入公司徽标 使用以下代码 电子邮件绝对可以正常工作 但不再附加嵌入的图像 不知道我哪里做错了 任何人都可以帮我吗 import smtplib from e
  • 在Python中读取文件并将值存储到变量中

    假设我有一个文件名 test txt 其中包含以下数据 AA11 BB11 CC11 DD11 AA22 BB22 CC22 DD22 AA33 BB44 CC44 DD33 在 bash shell 脚本 中我可以执行以下操作 cat t
  • 在以下任何来源中均未找到 Bumblebee Android studio 插件 [id: 'com.android.application', 版本: '7.1.0', apply: false]:

    我将我的 android studio 从 Android studio Fox 更新为 Android studio Bumblebee 2021 1 1 但我的项目都不能运行Android 工作室大黄蜂 2021 1 1 我最终得到了这
  • 使用 CSS 实现内部文本阴影

    我目前正在使用 CSS3 并尝试实现这样的文本效果 黑色模糊的内部阴影 但我找不到创建文本阴影的方法inside文本 我想知道这是否仍然可能 因为 box shadow 元素能够像这样在内部渲染阴影 box shadow inset 0px
  • Google 云存储签名 URL 上传 + Dropzone.js

    我正在尝试使用 Dropzone js 使用签名 URL 直接上传到 Google Cloud Storage 我已经设法覆盖添加到 Dropzone 的每个文件的上传 URL Chrome 开发工具说PUT请求正在发生 但我不可避免地收到
  • SOCKS5 连接超时 (GCDAsyncSocket)。 (OpenFire、XEP-0065 和 iOS XMPPFramework)

    Problem 我正在尝试使用 iOS XMPPFramework 和 OpenFire 服务器进行 TURNSocket XEP 0065 SOCKS5 我希望能够发送和接收文件 然而 在大多数情况下 接收方不会返回任何响应 我目前怀疑问
  • 如何在手机上点击网页链接时触发电话

    我需要为移动设备构建一个网页 只有一件事我还没弄清楚 如何通过点击文字来触发电话 有没有我可以输入的特殊网址 例如mailto 电子邮件标签 设备特定的解决方案不是首选 我知道 iPhone 会自动识别电话号码并为此创建一个链接 但如果也可
  • 自动布局,无需使用 Storyboards 或 Interface Builder

    我正在构建一个应用程序 我想完全避免使用 Storyboard 和 Interface Builder 因此所有 UI 都应该在代码中指定 我在用纯布局 一个很好的配置 APIAutoLayout限制 然而 我的问题是 它看起来像AutoL
  • 将非托管 char** 封送至托管 string[]

    我在 DLL 文件中有一个 C 函数 它是使用多字节字符集选项编译的 declspec dllexport void TestArray char OutBuff int Count int MaxLength for int i 0 i
  • 如何将图像传递到 html 文本区域 [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我想知道如何将图像从图像库传递到 html 文本区域 我应该使用 jquery javascript 吗 你知道关于这个函数的一些好的教程吗 通过操作系统内置选择器选择图像后
  • Julia 1.0 UndefVarError - 变量范围

    我将从 Julia 0 7 升级到 1 0 看来 Julia 对变量范围的规则从 0 7 更改为 1 0 例如 我想运行一个像这样的简单循环 num 0 for i 1 5 if i 3 num num 1 end end print nu