F# 可变列表为空

2024-02-09

当我尝试运行下面的代码时,属性为空。这是为什么?我为属性分配了一个空列表,但第一次通过循环时,它为空。

这会导致它删除我附加到它的第一个值。我也不明白这一点。似乎与 null 连接的值应该是该值的列表。

[<TechTalk.SpecFlow.Binding>]
module FSharpLeftistHeapStepDefinition

open TechTalk.SpecFlow

let mutable properties = [0]
let [<Given>] ``I have a list with the following numbers``(values:Table) = 
    let rec insertItems i =
        if i < 0 then ()
        else 
            let value = int ((values.Rows.Item i).Item 0)            
            properties <- value::properties
            insertItems (i-1)

    insertItems (values.RowCount - 1)

这很奇怪。

[编辑] 基于Tarmil答案的解决方案

 [<Binding>]
 type Example ()= 
     let mutable properties = []
     let [<Given>] ``I have a list with the following numbers``(values:Table) = 
         let rec insertItems i =
             if i < 0 then ()
             else 
                 let value = int ((values.Rows.Item i).Item 0)            
                 properties <- value::properties
                 insertItems (i-1)

         insertItems (values.RowCount - 1)

我假设这个[<Given>]属性来自一个测试框架,这让我怀疑该程序集是通过它以非常规方式加载的。初始值[0]由模块的静态构造函数设置,因此如果该构造函数不是由测试框架运行,那么这就解释了为什么它保持等于null.

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

F# 可变列表为空 的相关文章

  • 如何使用 BDD 构建 CRUD 测试

    我陷入了一个进退两难的境地 试图找出答案best构建我的 CRUD 测试的方式 在我的应用程序中 用户可以创建多种类型的 任务 我当前的实现如下所示 Scenario Create Task Type A Given I am on a u
  • F# 的 timeit 函数

    我想写一些类似的东西 let timeit x a gt b let start System DateTime Now x let duration System DateTime Now start printfn time usage
  • 使用实体框架代码优先的 FSharp 记录类型

    我正在一个业务应用程序中进行概念验证 我想用 F 替换当前的 C 代码优先实体框架实现 我正在关注this http blogs msdn com b visualstudio archive 2011 04 04 f code first
  • 继续“F# 中是否存在与 C# 的 nameof(..) 等效的内容?”

    参考F 中是否存在相当于 C 的 nameof 的功能 https stackoverflow com questions 48304398 is there an equivalent of cs nameof in f 在以下情况下如何
  • Silverlight 如何确定程序集是“Silverlight”?

    我正在尝试从 F 编译代码以在 Silverlight 中使用 我编译 noframework cliroot C program Files Microsoft Silverlight 2 0 31005 0 standalone 这会生
  • 使用 F# 进行循环与递归

    这里的示例代码解决了一个项目欧拉问题 从数字 1 开始 按顺时针方向向右移动 方向 5 x 5 螺旋形成如下 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13
  • 在 F# 中的 Choice 之上构建 Either(或 Result)

    我根据 Scott Wlaschin 中的信息构建了一个成功 失败的 monadblog http fsharpforfunandprofit com posts computation expressions wrapper types
  • 双前向/后向管道操作符是否有记录?

    我记得读过有关双管道运算符的内容 gt 和 Example let print a b sprintf O O a b 1 2 gt print val it string 1 2 双 向前 向后 管道运算符记录在以下列表中MSDN 上的
  • F#、FParsec 和递归调用流解析器(第二次)

    感谢您的回复我的第一篇文章 https stackoverflow com questions 26853718 f fparsec and calling a stream parser recursively and 我的第二篇文章 h
  • 在 Blazor 中显示计时器

    我正在尝试在服务器端 Blazor 应用程序中显示倒计时器 我的代码同时使用 F 和 C 语言 该代码在某种程度上可以工作 但计时器永远不会按预期停止 并且计时器显示偶尔不会呈现所有数字 这是我第一次尝试 Blazor 服务器端应用程序 我
  • FParsec:如何组合解析器以便它们以任意顺序匹配

    任务是找到特定的键值对并解析它们 这些对可以按任何顺序出现 我的部分工作尝试 open FParsec type Parser lt a gt Parser lt a unit gt type Status Running Done typ
  • Specflow 在具有场景上下文的表中使用参数

    我正在 C 中使用 Specflow 通过 Selenium 构建自动客户端浏览器测试 这些测试的目的是模拟客户在特定页面进入我们网站的业务场景 然后他被引导到正确的页面 我想在场景上下文中使用参数 例如 When I visit url
  • 是 F# 映射上的迭代还是集合中序遍历?

    AFAIK F Map 和 set 被实现为红黑树 所以我猜这些的迭代将是有序遍历 我做了一些测试 迭代结果总是排序的 但我想确定一下 是按顺序遍历吗 MSDN 上的文档非常适合解决这个问题 例如 返回值Set toSeq http msd
  • F# 参数传递

    我一直认为 F 有两种不同的方式来传递参数 柯里化风格和元组风格 这实际上是正确的吗 是不是很简单一种风格 柯里化风格和参数可以是简单值或元组 e g someFunc a b 这不是一个函数吗one咖喱风格的参数恰好是一个元组 因此允许我
  • ProjectCracker 与 .netstandard 2.0 项目

    我的团队最近从使用 net 框架转向使用 net 标准 2 0 作为我们的 F 库 我们有一些在项目上运行的内部脚本来自动生成 Markdown 文档 这些脚本使用 F 编译器服务 SDK 来分析代码并检索类型元数据 文档注释等 我们正在使
  • 如何在 F# 中将对象转换为泛型类型列表

    在下面的代码片段中 我的目的是将 System Object 可能是 FSharpList 转换为它所持有的任何泛型类型的列表 match o with list lt gt gt addChildList o gt list lt gt
  • F# 中类型约束的顺序

    这适用于 F 4 0 type Something lt a b when b gt seq lt b gt gt 这不会 type Something lt b when b gt seq lt b gt a gt 类型名称中出现意外的符
  • F# 对于 OO 或命令式来说缺少什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • F# 类型提供程序与 Lisp 宏

    我一直在阅读有关 F 3 0 类型提供程序的内容 例如here http msdn microsoft com en us library hh156509 aspx 并且它们似乎基于一种编译时代码生成 在这方面我想知道它们与 Lisp 宏
  • 该表达式的类型为 int,但此处与 unit 类型一起使用

    我试图在 F 中获得与此 vb net 代码完全相同的 非功能性的 Function FastPow ByVal num As Double ByVal exp As Integer As Double Dim res As Double

随机推荐

  • 按带有日期值的单个键对对象数组进行排序

    我有一个包含多个键值对的对象数组 我需要根据 updated at 对它们进行排序 updated at 2012 01 01T06 25 24Z foo bar updated at 2012 01 09T11 25 13Z foo ba
  • Jsoup SocketTimeoutException:读取超时

    I get a SocketTimeoutException当我尝试使用 Jsoup 解析大量 HTML 文档时 例如 我得到了一个链接列表 a href www domain com url1 html link1 a a href ww
  • 将列添加到数据框,测试其他列中的分类变量

    我已经提到过 如何根据另一列的条件语句将因子列添加到数据框 https stackoverflow com questions 16570302 how to add a factor column to dataframe based o
  • 如何实现可重用的回调函数

    我对 JavaScript 相当陌生 我在 Node 中工作 这需要对异步编程和回调设计有很好的理解 我发现使用嵌入式函数非常容易 即使您的回调是多个级别的深度 您的嵌入式回调最终会成为闭包 但是 当您有多层回调 其中许多回调在执行路由上是
  • 为什么我的 Jasmine 规范认为我的 Angular 模块未定义

    为什么我的 Jasmine 规范认为我的 Angular 模块未定义 我在实际模块代码下方添加了一行代码 将布尔值设置为 true 然后我从规范中对其进行 console log 它指示 true 我还尝试更改模块 使其不是超范围 我的术语
  • ansible kubectl 等待节点就绪

    是否有任何现有的 ansible 模块可以用于以下用途 我可以等待kubectl get nodes STATUS Ready kubectl get nodes NAME STATUS ROLES AGE VERSION master1
  • 如何读取和处理(解析)命令行参数?

    在Python中 我们如何找到为脚本提供的命令行参数并处理它们 Related background reading What does sys argv 1 mean What is sys argv and where does it
  • 在位数组中有效查找“1”的位置

    我正在连接一个程序来测试一组电线的开路或短路情况 该程序在 AVR 上运行 将测试向量 步行 1 驱动到电线上并接收返回结果 它将所得向量与已存储在 SD 卡或外部 EEPROM 上的预期数据进行比较 这里有一个例子 假设我们有一组 8 根
  • 员工单独工作时间安排

    我有工作人员的时间清单 我需要查明是否有员工单独工作以及他们一天单独工作了多少分钟 staff start end 1 11 05 20 00 2 11 00 17 00 3 19 00 03 00 4 13 00 20 00 5 19 0
  • Selenium JavaScript - 将元素滚动到视图中而不与标题重叠

    webdriver executeScript arguments 0 scrollIntoView element 这会将元素滚动到视图中 但它位于页面标题的后面 如何将元素滚动到视图中 以便该元素位于标题正下方而不是标题后面 方法scr
  • 视频作为网站上的背景根据命令播放

    我一直在尝试将视频设置为背景 我有 flv 文件和 youtube 链接 使用 html5 视频标签或 jquery 将其放在我的网站上并不困难 但我找不到如何将它放在我的网站上但不能自动启动 我有一个半透明的矩形 文本将显示在其中 所以我
  • 为什么Android布局中的Fragment元素用小写的“f”书写?

    所有其他元素都以大写字母开头 例如RelativeLayout TextView 等 Fragment 元素始终用作
  • 具有 32/16 位除法的处理器上的 64/32 位除法

    我的处理器 http www microchip com wwwproducts Devices aspx dDocName en532298 一个没有 FPU 和整数数学的小型 16 位微控制器 只有 16 16 除法和 32 16 除法
  • 将输入传递给 Angular 2 中的嵌套组件

    如何将属性从包装组件透明地转换为嵌套组件 考虑到有 const FIRST PARTY OWN INPUTS const FIRST PARTY PASSTHROUGH INPUTS all attrs are passed Compone
  • Angular ui 引导程序未加载

    我从示例页面获取所有内容 基本上没有什么不同 控制器和 html 正文是从手风琴示例中纯粹复制粘贴的https angular ui github io bootstrap https angular ui github io bootst
  • 如何更改加载浏览器外 Silverlight 3 应用程序的背景颜色?

    在浏览器外运行 Silverlight 3 应用程序时 启动需要一点时间 但时间足够长 足以引起人们的注意 在此启动期间 托管应用程序的窗口的背景显示丑陋的白色背景颜色 在浏览器中运行时 我们有一个启动屏幕 但它当然是通过 JavaScri
  • 查找 bash 中第一列中每个不同值的第 n 列中的最大值

    我有一个 3 列文件 我想找到第三列的最大值 其中行与第一列相同 并且输出中还有第二列 Input 1 234 0 005 1 235 0 060 1 236 0 001 2 234 0 010 2 235 0 003 2 236 0 00
  • 在同一场景中加载新的 fxml

    我有 2 个 fxml 文件 布局 标题 菜单栏和内容 Anchorpane 它应该放置在其他 fxml 文件的内容中 我想知道如何从 Master 场景加载内容空间内的第二个文件 在 javaFX 中工作是一件好事还是加载新场景更好 我正
  • 如何显示视频路径中的视频缩略图?

    我想在 ImageView 中显示存储上视频路径的视频缩略图 是否有一个函数可以获取视频路径并返回缩略图的位图 我通过以下代码获取视频路径 public ArrayList
  • F# 可变列表为空

    当我尝试运行下面的代码时 属性为空 这是为什么 我为属性分配了一个空列表 但第一次通过循环时 它为空 这会导致它删除我附加到它的第一个值 我也不明白这一点 似乎与 null 连接的值应该是该值的列表