Beg*_*udy 8 f# ironpython dynamic c#-4.0
.net4.0
mytest.py
def Add (a, b):
    return a+b
我可以在C#4中使用它,像这样:
        ScriptRuntime runtime = Python.CreateRuntime();
        dynamic script = runtime.UseFile("mytest.py");
        Console.WriteLine(script.Add(1, 3));
但是,我如何在F#中使用动态?
open System
open Microsoft.Scripting.Hosting
open IronPython.Hosting
let call a b=
    let runtime = Python.CreateRuntime()
    let script = runtime.UseFile("mytest.py")
    script.Add(a,b)
nuget 上有一个模块FSharp.Interop.Dynamic,它使用 dlr 实现动态运算符。以便:
open System
open Microsoft.Scripting.Hosting
open IronPython.Hosting
open EkonBenefits.FSharp.Dynamic
let call a b=
    let runtime = Python.CreateRuntime()
    let script = runtime.UseFile("mytest.py")
    script?Add(a,b)
与许多现有的片段相比,它有几个优点。
添加一个!?前缀运算符来处理直接调用运行时没有类型的动态对象和函数。
| 归档时间: | 
 | 
| 查看次数: | 1720 次 | 
| 最近记录: |