.net - 将数组传递给函数

标签 .net f#

我正在尝试编写一个简单的 F# 函数,我可以将一个数组传递给它,然后打印值,但我遇到了问题。这是我目前所拥有的:

let a = [| a; b; c; d |];;

let f arrayFunction (string[] array) = function
    for b=0 to array.Length
      Console.WriteLine(array.[]);;

最佳答案

用于定义参数的 F# 语法是 C# 语法的倒退;在 F# 中,参数的名称在前,然后是类型(用冒号分隔两者)。

这里也不需要 function 关键字,只需要普通的 let 绑定(bind)——function 用于创建匿名模式匹配功能。但是,您确实需要在 for 循环的行尾添加一个 do。最后,F# for 循环中 to 之后的值是包容性的——因此您需要从数组长度中减去一个,否则您将最终引发 IndexOutOfRangeException。

你的函数应该这样写:

let a = [| a; b; c; d |];;

let f arrayFunction (array : string[]) =
    for b = 0 to array.Length - 1 do
        Console.WriteLine (array.[b]);;

关于.net - 将数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16264942/

相关文章:

c# - 非对称TCP加密C#

c# - 在 .NET Core 下的分层架构中自动创建 CRUD

.net - NUnit "could not load file or assemby ' MyTestProject'

f# - 使用不同的值更改列表的特定元素

c# - 为什么带有 UNC 路径的 .NET 的 File.Open 会产生过多的 SMB 调用?

c# - 如何让 WebBrowser 控件显示现代内容?

c# - F#:连接到 Azure SQL 数据库?

.net - F# 脚本/F# 交互中的性能调优

haskell - 柯里化(Currying)会产生部分应用的函数吗?

F# Fake 在 WSL2 中运行解析托管 Windows 中的程序路径,而不是 Linux 中的程序路径