julia变量的范围:在开放表达式的循环内重新分配

2024-03-28

我正在努力在 Julia 的循环中重新分配变量。我有一个以下的例子:

infile = "test.txt"

feature = "----"

for ln in 1:3
    println(feature)
    feature =  "+"
end



open(infile) do f
#if true
    # println(feature)
    # feature = "----"
    println(feature)
    for ln in 1:5 #eachline(f)
        println("feature")
        #fails here
        println(feature)
        # because of this line:
        feature =  "+"
    end
end

如果我在循环内重新分配,它会失败。我发现变量作用域存在问题,因为涉及嵌套作用域。这参考 http://docs.julialang.org/en/release-0.4/manual/variables-and-scoping/说循环引入了“软”范围。我从手册中找不到什么范围open表达式属于,但看起来它把事情搞砸了,好像我替换了open with if true,事情进展顺利。

我的理解正确吗open引入了“硬”作用域,这就是重新分配追溯性地使变量未定义的原因?


你应该想到

open("file") do f
    ...
end

as

open(function (f)
    ...
end, "file")

那是,do引入了与function or -> would.

所以能够写信给feature从功能上来说,你需要做

open(infile) do f
    global feature  # this means: use the global `feature`
    println(feature)
    for ln in 1:5
        println("feature")
        println(feature)
        feature =  "+"
    end
end

请注意,这仅是顶级(模块)范围内的情况;一旦进入函数内部,就不存在硬作用域了。

(The for在这种情况下,循环是一个红鲱鱼;无论循环的软范围如何,都可以访问feature将受到以下引入的匿名函数的硬作用域的限制do.)

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

julia变量的范围:在开放表达式的循环内重新分配 的相关文章

  • 如何在 Spring 中将对象添加到应用程序范围

    我们可以使用设置请求属性Model or ModelAndViewSpring 中的对象 我们可以用 SessionAttributes将属性保留在会话范围内 那么我怎样才能将属性放入applicationSpring中的作用域 sprin
  • Julia 似乎没有使用字符串来执行插值

    官方文档指出 连接和字符串插值调用string 将对象转换为字符串形式 然而 以下最小工作示例似乎证明了其他情况 type MyType x Int end import Base string Base string m MyType w
  • Struts2中ActionMapper、ActionProxy、ActionInitation、ActionContext对象的范围?

    任何人都可以描述一下我的对象吗 ActionMapper ActionProxy ActionInvocation ActionContext在 Struts2 应用程序中创建 由于我是 Struts2 框架的新手 我对这些对象的范围感到非
  • C++ 使用对正在定义的变量的引用

    根据标准 不考虑 以下代码是否有效 C bool f T r if r return true return false T x f x x T 众所周知 要在该项目使用的 GCC 版本中进行编译 4 1 2 和 3 2 3 甚至不让我开始
  • Javascript:作用域链何时创建?

    我听到过两种说法 当定义函数时 In book Professional Javascript for Web Developers 3rd Edition 在里面Chapter 7 Function Expressions封闭部件 当co
  • JavaScript作用域问题

    我正在调用此函数 将结果分配给回调中的变量 然后记录结果 但我一直未定义 var id test getID function result id result console log id 如果我将其更改为下面的代码 那么我可以看到记录的
  • 朱莉娅中未显示情节

    我有一个名为 mycode jl 的文件 其中包含以下代码here https juliastats org MultivariateStats jl dev pca using MultivariateStats RDatasets Pl
  • 为什么 Ruby 解析文件时常量不像局部变量那样被初始化?

    在 Ruby 中 我知道我可以做这样的事情 if false var Hello end puts var 应用程序不会崩溃 并且var只需设置为nil 我读到 这种情况的发生是由于 Ruby 解析器的工作方式造成的 为什么同样的方法不适用
  • 如何使用事务范围的持久化上下文进行非事务性读取查询?

    我读了 Spring 文档 它说 PersistenceContext 注解有一个可选的属性类型 默认为 PersistenceContextType TRANSACTION 此默认值是您接收共享所需的 实体管理器代理 这是否意味着我必须让
  • 作用域对象的 Xtext 示例

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

    在许多机器学习用例中 您需要创建一个充满 1 且具有特定维度的数组 在Python中 我会使用np ones 2 1 Julia 中的模拟版本是什么 朱莉娅有一个内置的ones可以使用如下函数 julia gt ones 1 2 1 2 M
  • 多个指令 [myPopup、myDraggable] 请求新的/隔离的范围

    我编写了一个对话框指令 myPopup 和另一个用于拖动此对话框的指令 myDraggable 但我总是收到错误 多个指令 myPopup myDraggable 请求新的 隔离的范围 这是一个笨蛋 http plnkr co edit k
  • 从 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
  • 如何在 Julia `DataFrame` 中折叠具有重复时间戳的数据

    我有一个DataFrame对象如下所示 Row timestamp price volume 1 2011 08 14T14 14 40 10 40 0 779 2 2011 08 14T15 15 17 10 40 0 101 3 201
  • 如何获取调用函数的“this”值?

    如果我有一个这样的函数 function foo this console log this function bar bar prototype func function foo this var test new bar test f
  • 如何在 Julia 中保存文件

    在某些时候 我认为 Julia v0 7 你可以做 save savepath thingtosave为了使用 Julia 保存文件 我尝试在 v0 7 上运行它 看看是否收到弃用警告 但即使在 0 7 上 它也说 save未定义 如何使用
  • Javascript/jQuery 变量未给出预期值

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

    关于 PHP 范围的小问题 我似乎无法在 while 循环之外调用变量 report 我尝试过各种事情 包括return 这不起作用 这里唯一起作用的两个函数是如果我echo变量 report在循环内 或者如果我print它 我不想这样做
  • 如何制作任意级别的嵌套for循环

    我可以像这样做一个两级嵌套循环 for i1 in 1 n for i2 in 1 n do something with i1 i2 如何将其扩展到任意级别的嵌套循环 例如 我可以在 Python 中执行此操作以循环 n m 的笛卡尔积

随机推荐

  • 如何将这些邮政编码导入到标准化表中?

    我有一个 CSV 其中包含一些数据 如下所示 A0A0A0 48 5674500000 54 8432250000 Gander NL A0A1A0 47 0073470000 52 9589210000 Aquaforte NL A0A1
  • Mac OSX 上 IntelliJ Idea 中区分大小写的文件

    我的java项目有名称相同但大小写不同的文件 Test java test java 我在 Mac 上设置了区分大小写的文件系统 并且能够通过 CLI 查看 编辑它们 但是 Intellij Idea 并不认为它们不同 编译失败 如何修复
  • 如何使用 SuperObject 序列化包含点(例如 IP 地址)的 JSON 密钥?

    我正在尝试保存 JSON 其中 IP 是关键 预期的 JSON 结果是 SnmpManagers 10 112 25 235 162 Delphi超级对象代码 const IpAddr 10 112 25 235 Port 162 var
  • 删除字符串时堆损坏

    这是我的代码 std string readString int strLen Read
  • 使用 Gradle 运行多个 Spring Boot 微服务

    我正在开发一个使用 Gradle 构建的 Spring Boot 应用程序 我们有多个微服务作为该应用程序的子项目 我正在尝试使用 Spring Boot 的 bootRun 任务从命令行使用单个 bootRun 命令运行应用程序和所有微服
  • Android 模拟器停止显示屏幕键盘?

    我在 eclipse 中使用 AVD 管理器 是否有一个设置可以用来在输入字段获得焦点时停止显示屏幕键盘 我尝试了硬件键盘 true 但模拟器似乎根本没有启动 S 姆斯托伊克的回答 https stackoverflow com a 541
  • 如何调试CompletableStage死锁?

    我最近遇到的最困难的调试问题是异步操作之间的死锁 例如 给定两个CompletionStage链 其中第一个链调用依赖于第二个链的完成的方法 第二个链调用依赖于第一个链的完成的方法 这在现实生活中并不那么明显 因为依赖关系往往是隐藏的 有时
  • OTRS:使用 wsdl 生成 Java SEI 时出错

    Windows 7 Java 7 OTRS appliannce 我正在尝试使用 wsimport 来生成带有 wsdl 文件的 Java SEIhttps raw githubusercontent com OTRS otrs maste
  • C 中 (*p)[8] 和 *p[8] 有什么区别?

    两个声明如下 int p 8 int p 8 第一个是single指向 8 个整数的数组的指针 而第二个是array8 个指针 每个指针指向一个整数 如果你只是踢起来cdecl 对于这类事情来说非常棒 pax cdecl Type help
  • 如何使用 laravel-mix 将 mdbootstrap vue 加载到 Laravel 5 中?

    我正在尝试将 mdbootstrap vue 安装到 Laravel 5 6 项目中 但我真的不明白我该怎么做 如果有人能给我一些教程 那就太好了 试试这个 已更新 假设你已经安装了laravel 转到您的项目目录并执行以下操作 npm i
  • 删除 Ember 数据中 POST/PUT 操作的 JSON 根元素

    我正在使用一个 Web 服务 该服务在 POST PUT 动词中需要如下所示的 JSON id CACTU companyName Cactus Comidas para llevar contactName Patricio Simpso
  • 字典中的差异

    我试图找出字典中的差异 是否添加或删除了某些内容以及从什么内容中添加或删除了某些内容 这是一个添加值的情况 original 0 None 1 False 2 16 new 0 None 1 False 2 2 16 difference
  • 从构建中获取 BuildAgent 信息

    我有一个 IBuildDetail 变量 其中包含我需要的构建信息 好的 但是当我检查属性 BuildAgent 时 它显示 build BuildAgent 抛出了类型为 System NotImplementedException 的异
  • Windows CMD 中的创建日期

    使用 Windows 批处理 此函数返回文件的创建日期 creationDate set CompareFile 1 echo CompareFile for f skip 5 tokens 1 2 4 5 delims a in dir
  • 如何获取内存中对象的数据集?

    有谁知道与泛型和 RTTI 一起使用的 TDataset 后代 以便我可以编写这样的代码 并在 GUI 中使用数据感知组件 ds TDataset
  • 如何使用 Clap Args 的内部库 Enum

    我目前正在研究一个铁锈端口 https github com JuxhinDB twistrs某证券的tool https github com elceef dnstwist 与 Rust 的指南一致 我想将核心库隔离到自己的包中 以便我
  • 如何以编程方式删除 Groovy 中的默认导入?

    默认情况下 一些包是在 Groovy 类中导入的 我知道您可以使用 ImportCustomizer 添加新的 但有没有一种方法可以以编程方式删除它们 预先感谢您的回答 不 如果你查看代码 你会发现标准进口 http groovy code
  • 使用java库访问谷歌云存储遇到“403禁止”

    我正在尝试在 scala 中使用谷歌云存储 java 库来列出存储桶中的项目 val credential new GoogleCredential Builder setTransport GoogleNetHttpTransport n
  • Set-AzStorageBlobContent 引发异常:路径中存在非法字符

    我正在将 Azure 部署脚本从 AzureRM 迁移到 Az 新模块似乎无法打开文件 有任何想法吗 我尝试用正斜杠替换反斜杠 我什至从脚本所在的文件夹中调用它 所以我不需要向它传递完整的文件名 它会正确地将其解析为全名 但它仍然无法打开它
  • julia变量的范围:在开放表达式的循环内重新分配

    我正在努力在 Julia 的循环中重新分配变量 我有一个以下的例子 infile test txt feature for ln in 1 3 println feature feature end open infile do f if