朱莉娅:变量未定义

2024-01-24

变量作用域的行为看起来很奇怪。代码块

tp = 1
function test2()
    println(tp)
end

工作得很好,同时

function test()
    if tp==0
       tp=tp-1
    end
end

给出异常“tp 未定义”。怎么了?


由于变量被隐式定义为局部或全局的方式,并且定义的事实,这很棘手later函数中的作用域可以影响它们在整个函数中的作用域。

在第一种情况下,tp默认为全局变量,并且它按您的预期工作。然而,在第二种情况下,你assign to tp。这一点,正如在变量范围部分 http://docs.julialang.org/en/latest/manual/variables-and-scoping/手册的:

“一项任务x = y引入一个新的局部变量x除非x既不声明为全局的,也不被之前或之前的任何封闭范围引入为本地的after当前代码行。”

所以,通过分配给tp,您已隐式将其声明为局部变量!它现在将遮蔽您的全局定义......除非您尝试先访问它。解决方案很简单:如果要分配给任何变量,则显式声明它们为全局变量:

   function test()
       global tp
       if tp==0
          tp=tp-1
       end
   end

这里的行为非常微妙,但非常一致。我知道我花了几次时间阅读了手册的这一部分,然后才最终理解了它是如何工作的。如果你能想到更好的方式来描述它,请说出来!

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

朱莉娅:变量未定义 的相关文章

  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 如何一步步执行Julia脚本?

    Julia 有什么方法可以在 REPL 中逐步执行现有脚本 同时能够修改 绘制数组吗 以Matlab调试为例 注意 我特别要求 0 4 版本 希望能够实现新的调试系统 您有几个选择 The 调试包 https github com toiv
  • 在 Twig 的父作用域中设置变量

    在Smarty你可以做 var bla scope parent 在 Twig 中可能吗 不建议使用块 我知道 我需要变量 如果您不想使用default 过滤器 即 当您想在整个父模板和子模板中多次使用该变量时 您实际上可以在父模板中定义一
  • 变量的多个值介于 0 和数字序言之间

    所以我一直在尝试自学序言 我认为我进展顺利 然而 我有点坚持我正在尝试的这一种方法 toN N A A 等于 0 到 N 1 之间的整数值 按升序生成 所以 toN 5 A 将是 A 0 A 1 A 2 A 3 A 4 我对序言还很陌生 所
  • 在Java中,为什么某些变量首先需要初始化,而其他变量只需要声明?

    我试图更深入地理解我是否遗漏了一些关于 Java 何时需要变量初始化与简单声明的理解 在以下代码中 不需要为变量 row 赋值即可编译和运行 但变量 column 则需要赋值 注意 该程序没有任何用处 它已被修剪为仅显示此问题所需的内容 以
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq
  • Perl 中的“@_”有什么作用?

    我浏览了一些我在 Perl 类中编写的代码 我注意到了这一点 my string my stringarray split string 我想知道两件事 变量位于括号中的第一行 这是声明多个变量时所做的事情 如果我删除它们 它仍然可以正常工
  • PHP 类中的命名空间和全局变量问题

    我陷入了这种困惑 我不明白为什么我的 HelperClass 下的全局 error 返回空 我可以验证 class gt error 确实之前已填充了数据 在这种情况下 命名空间是否存在某种我不知道的问题 请给我一些指点 以下是一些相关的代
  • 如何使用 Julia 查找矩阵中的连通分量

    假设我有以下矩阵 此处用 Julia 语言定义 mat 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 将一组值为 1 的相邻元素视为一个 分量 如何识别该矩阵有 2 个分量以及每个分量由哪些顶点组成 对于矩
  • 来自外部文件的 PHP 变量?

    编辑 完成的解决方案 工作代码 所以 这是我的一个朋友帮我想出来的 这是我在 K2 items php 文件中使用的部分 div class fb comments div
  • 当我尝试在 PHP 中访问类变量时,类变量为 null

    好吧 这是我的主要代码 require checkpassword php require mysqllogininfo php Validate password if validatePassword GET password retu
  • 如何使用Python轻松地将变量扩展为字符串?

    这样做有什么好的习惯用法 代替 print s is a s s that s name adjective noun verb 我希望能够做一些事情来达到以下效果 print name is a adjective noun that v
  • 如何在 EXTJS 中使用全局函数/实用类

    我的代码结构如下 gt MyApp gt 应用程序 gt 控制器 模型 存储 共享 util gt Utility js 视图 我创建了以下实用程序类 Ext define MyApp shared util Utilities myFun
  • Devops YAML - 使用表达式设置构建名称

    在 yaml 构建中 是否可以使用表达式设置构建名称 如果我可以将发布管道与实际构建 ID 相匹配 那将是有利的 Example trigger master variables major 2 minor 3 offset 2000 bi
  • 调试 Julia v.0.6

    我克隆了一个存储库 https github com XiaojingGeorgeZhang OBCA tree master AutonomousParking在 Julia 0 5 和 0 6 中进行了测试 我之前使用的是最新的 Jul
  • 在 Nexus 中部署后,POM.xml 中的变量未解析?

    我使用 Maven Multi Modul Jenkins 构建然后部署在 Nexus 中 我在 Pom 文件中使用了在parent pom 部分属性中定义的许多变量 我会在构建 部署后解析 Pom Nexus 中的变量 我知道这是可行的
  • Julia:将 1x1 数组从内积转换为数字

    从内积运算而不是 1x1 数组中获取数字的最佳方法是什么 还有比这更好的方法吗 1 2 3 4 5 6 1 如果可能的话 我不会手动进行内积 我会使用dot i e dot 1 2 3 4 5 6 我注意到你实际上并没有向量 相反你有1x3
  • 获取和编辑 GET 变量以创建超链接的方法

    假设我有这样的网址somefile php sort id way desc 我想编写一个函数 或使用已经创建的函数 让我将下一个变量添加到 URL 并设置我要删除的变量 我想到了类似的事情function editGetVar add l
  • MySQL - CONCAT - 有什么方法可以连接字符串并将其用作变量吗?

    mysql 上的时间很少 但开始探索边缘 Stackoverflow 是一个很棒的资源 谢谢大家 在尝试 Concat 时我遇到了这个问题 我知道会有办法 但我就是想不出来 我的例子 set strokes hole 10 6 set x
  • 在不同的函数中调用变量而不使用全局变量

    我试图在另一个函数中定义的函数中使用变量 列表 而不将其设置为全局 这是我的代码 def hi hello 1 2 3 print hello def bye hello print hello hi bye hello 目前我收到错误 b

随机推荐

  • Plaid 快速入门 - 无法获取 link_token (Python)

    按照以下说明进行操作后https dashboard plaid com overview sandbox https dashboard plaid com overview sandbox 我得到了以下消息在前端 https i sta
  • 如何对值为数组引用的 Perl 哈希进行排序?

    嘿 我只是想知道是否有一个很酷的 单行 可以对保存数组引用的哈希进行排序 所以我的哈希中有一堆键 值 例如 DataBase key value 但是我想按以下方式对哈希进行排序array 0 元素 然后循环遍历它们 我一开始是这样的 fo
  • C++ 模板函数参数推导和函数解析

    今天我只想提出一个关于C 模板函数参数推导和C 11中模板函数重载解析的问题 我使用的是vs2010 sp1 我定义了两个模板函数 如下所示 功能 1 template
  • 在 Angular 应用程序中处理过滤值的更优雅的方式

    我在 Angular 2 应用程序中多次重新加载表格显示中的数据时遇到了一些问题 我认为主要问题与以下事实有关 在初始组件加载时 我将数据作为网络请求发送给一系列过滤器 基本上 我们利用 Mongo Mongoose 功能 让我们在 pos
  • APN 重复令牌

    我们有一个推送通知服务器 它保存多个不同应用程序的数据 设备令牌 由于 Apple 希望阻止人们使用 UDID 作为标识符 我正在考虑更改此服务器 以便它不再依赖 UDID 来识别设备 据我所知 APN 返回的令牌不是全局唯一的 而是每个设
  • 我如何编写一个 mt4 指标,在前 6 小时的每小时蜡烛图上绘制矩形和水平线

    我是 mql4 编码的新手 我想知道如何根据下图编写一个执行以下操作的指标 在当天的小时图上绘制一个矩形 覆盖前 6 小时的最高和最低价格点 蜡烛 沿着找到的最高点和最低点画两条水平线 1 请注意 1 和 2 应严格基于每小时时间段 并且不
  • 如何在 Spring Data REST 中禁止 PUT 而允许 POST 和 PATCH?

    是否可以在 Spring Data REST 中完全禁止对存储库进行 PUT 同时仍然可以对集合进行 POST 并对项目进行 PATCH 这背后的基本原理是 PUT 通常允许替换语义 但在我们的例子中 资源只能通过集合上的 POST 创建
  • 您可以使用 TortoiseGit 与索引/暂存区域进行交互吗?

    我的任务是向我的同事做关于 Git 的演示 他们几乎都是习惯使用 TortoiseCVS 的 Windows 用户 我已经使用 Git 大约一年了 但我几乎只使用 Unix 命令行界面 所以我一直在尝试熟悉 Windows GUI Git
  • 如何解析 React Js 中的最小和最大日期输入?

    我创建了一个函数 该函数返回当前日期的减法或加法 并将结果设置为日期输入的最小值或最大值 我的职能 SubDate subDay gt let tgDate new Date tgDate setDate tgDate getDate su
  • 如何获取流星智能包中的当前目录

    我正在为要在 Atmosphere 上发布的流星构建一个包 我需要获取该包安装的当前目录 我努力了process cwd 在包中包含的文件中 但它获取我的应用程序的当前目录 该软件包已安装并正常工作 似乎该软件包与应用程序在同一进程中运行
  • Eclipse LogCat - 不工作

    这是有史以来最令人沮丧的事情 LogCat 不断停用 断开连接 运行 eclipse 后 LogCat 记录第一次运行 之后 它变为空白 我必须重新启动 Eclipse 才能使其再次运行 然后同样的事情再次发生 这有什么关系呢 它曾经工作得
  • 如何在 Sublime 中将“一行 html”格式化为漂亮的文档? [复制]

    这个问题在这里已经有答案了 我有一个 html 源文件 仅包含一行 如下所示 testwow 我想将其格式化如下 test wow 我使用了命令 编辑 gt 行 gt 重新缩进 但它不起作用 在 Sublime Text 中试试这个 突出显
  • 如何配置Automapper注入Ninject 2.0?

    Structure Map 和 Windsor 有配置示例 http www cprieto com index php 2009 08 20 using automapper with castle windsor http www cp
  • thread_guard 与scoped_thread

    在书里 Anthony Williams 的 C 并发实践 你可以找到以下两段代码 我做了一些细微的修改 片段 1 class thread guard std thread t public explicit thread guard s
  • 仅授予对 Amazon 别名密钥的访问权限的 IAM 策略

    In KMS http docs aws amazon com kms latest developerguide overview html有亚马逊别名键 例如 alias aws s3 and 客户主密钥 http docs aws a
  • 捕获音频会话事件

    我尝试编写一些应用程序来监视音频会话 如 SndVol 所做的那样 我激活了 IAudioSessionManager2 通过 IAudioSessionEnumerator 获取当前音频会话列表 使用音频会话管理器中的 RegisterS
  • 比较不同编码的字符串

    我只需要与 JavaScript 中的字符串进行比较 但有时特定字符串的比较会失败 通过 jQuery 获得一个值text 方法 来自一些自动生成的 HTML var value1 somelement text 另一个值被硬编码在 Jav
  • css/javascript 表单 onfocus 占位符文本仍然存在,输入时消失

    我只是想弄清楚如何制作像 www tumblr com 这样的表单 onFocus 占位符保留在输入框中 但当开始键入时 占位符文本消失 我通过找到的另一个教程知道如何进行 onFocushere http www webstuffshar
  • 我的 Android 应用程序在按主页按钮后崩溃

    我有一个具有滚动视图和媒体播放器的活动 当音乐正在播放并且我按主页时 它正常关闭 但是当我在没有音乐或其他任何内容的情况下按下主页按钮时 应用程序停止运行 请帮忙 有一个代码或有什么方法可以避免这个问题呢 我是安卓新手 这是我的日志猫 01
  • 朱莉娅:变量未定义

    变量作用域的行为看起来很奇怪 代码块 tp 1 function test2 println tp end 工作得很好 同时 function test if tp 0 tp tp 1 end end 给出异常 tp 未定义 怎么了 由于变