F#版本更新说明
2008-09-07 17:15
218 查看
F#CTP 1.9.6.0更正列表:
1、名称空间必须使用完全限定名打开,名称空间不可以取别名。
2、在fs,fsi文件中,除注释外,第一行必须使用#light或#light "off"
3、元组类型互操作上发生了变动。
新增了两个类型来提供互操作上的支持。TupleEnd,TupleNested,彻底解决了互操作上的不一致性。
let tuple_7=(1,2,3,4,5,6,7)
let tuple_9=(1,2,4,8,16,32,64,128)
let tuple_7_1=(1,2,4,8,16,32,(64,128))
对应的c#签名:
public static Microsoft.FSharp.Core.Tuple<int, int, int, int, int, int, Microsoft.FSharp.Core.TupleEnd<int>> tuple_7 { get; }
public static Microsoft.FSharp.Core.Tuple<int, int, int, int, int, int, Microsoft.FSharp.Core.TupleEnd<Microsoft.FSharp.Core.Tuple<int, int>>> tuple_7_1 { get; }
public static Microsoft.FSharp.Core.Tuple<int, int, int, int, int, int, Microsoft.FSharp.Core.TupleNested<Microsoft.FSharp.Core.Tuple<int, int>>> tuple_9 { get; }
C#语言如果使用以下的规则,F#语言就可以正确的识别出元组。
如果元组元素个数小于7,使用Tuple泛型,下面的代码,F#可以正确的转换为(1,2,3);
new Tuple<int,int,int>(1,2,3)
等于七个元素,第七个元素使用TupleEnd包装,下面的代码,F#可以正确的转换为(1,2,3,4,5,6,7)
net Tuple<int,int,int,int,int,int,TupleEnd<int>)(1,2,3,4,5,6,new TupleEnd<int>(7))
大于七个元素的元组,七个元素以上的使用TupleNested包装,下面的代码,F#可以正确的转换为(1,2,3,4,5,6,7,8)。
new Tuple<int, int, int, int, int, int, TupleNested<Tuple<int, int>>>
(1, 2, 3, 4, 5, 6, new TupleNested<Tuple<int, int>>(new Tuple<int, int>(7, 8)))
为了给大家一个直观的映象,我给出完整的调用例子。
首先请建立一个c#类库工程,引用FSharp.Core.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.FSharp.Core;
namespace TestFSharpTuple
在F#中分别调用
printfn "%A" TestFSharpTuple.Class1.T1
printfn "%A" TestFSharpTuple.Class1.T2
printfn "%A" TestFSharpTuple.Class1.T3
printfn "%A" TestFSharpTuple.Class1.T4
printfn "%A" TestFSharpTuple.Class1.T5
printfn "%A" TestFSharpTuple.Class1.T6
你会发现调用T2,T4均出错。T6不会出错,但可能不是你想要的结果,T6的结果为(1,2,3,4,5,(6,7,8))
调用T2时的错误截图:
调用T4的错误截图:
1、名称空间必须使用完全限定名打开,名称空间不可以取别名。
2、在fs,fsi文件中,除注释外,第一行必须使用#light或#light "off"
3、元组类型互操作上发生了变动。
新增了两个类型来提供互操作上的支持。TupleEnd,TupleNested,彻底解决了互操作上的不一致性。
let tuple_7=(1,2,3,4,5,6,7)
let tuple_9=(1,2,4,8,16,32,64,128)
let tuple_7_1=(1,2,4,8,16,32,(64,128))
对应的c#签名:
public static Microsoft.FSharp.Core.Tuple<int, int, int, int, int, int, Microsoft.FSharp.Core.TupleEnd<int>> tuple_7 { get; }
public static Microsoft.FSharp.Core.Tuple<int, int, int, int, int, int, Microsoft.FSharp.Core.TupleEnd<Microsoft.FSharp.Core.Tuple<int, int>>> tuple_7_1 { get; }
public static Microsoft.FSharp.Core.Tuple<int, int, int, int, int, int, Microsoft.FSharp.Core.TupleNested<Microsoft.FSharp.Core.Tuple<int, int>>> tuple_9 { get; }
C#语言如果使用以下的规则,F#语言就可以正确的识别出元组。
如果元组元素个数小于7,使用Tuple泛型,下面的代码,F#可以正确的转换为(1,2,3);
new Tuple<int,int,int>(1,2,3)
等于七个元素,第七个元素使用TupleEnd包装,下面的代码,F#可以正确的转换为(1,2,3,4,5,6,7)
net Tuple<int,int,int,int,int,int,TupleEnd<int>)(1,2,3,4,5,6,new TupleEnd<int>(7))
大于七个元素的元组,七个元素以上的使用TupleNested包装,下面的代码,F#可以正确的转换为(1,2,3,4,5,6,7,8)。
new Tuple<int, int, int, int, int, int, TupleNested<Tuple<int, int>>>
(1, 2, 3, 4, 5, 6, new TupleNested<Tuple<int, int>>(new Tuple<int, int>(7, 8)))
为了给大家一个直观的映象,我给出完整的调用例子。
首先请建立一个c#类库工程,引用FSharp.Core.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.FSharp.Core;
namespace TestFSharpTuple
在F#中分别调用
printfn "%A" TestFSharpTuple.Class1.T1
printfn "%A" TestFSharpTuple.Class1.T2
printfn "%A" TestFSharpTuple.Class1.T3
printfn "%A" TestFSharpTuple.Class1.T4
printfn "%A" TestFSharpTuple.Class1.T5
printfn "%A" TestFSharpTuple.Class1.T6
你会发现调用T2,T4均出错。T6不会出错,但可能不是你想要的结果,T6的结果为(1,2,3,4,5,(6,7,8))
调用T2时的错误截图:
调用T4的错误截图:
相关文章推荐
- 关于 智能杀毒伴侣 相关说明及技巧及版本更新 (不断更新)
- Android Studio2.0 Beta 2版本更新说明及注意事项
- NOPCOMMERCE1.* 版本演变及每个版本更新说明 【下】
- Unity NGUI——3.8.1版本更新说明
- [Spark--版本更新]--2.3.0发行说明
- FuIP专为单片机联网而定制的TCP/IP协议栈——v2.1更新版本说明
- Oracle 更新 OPatch 工具版本 的方法 说明
- cocos2d-x V3.14.1 版本更新说明
- 《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用。附:3.2发布与版本更新说明。
- Unity NGUI——3.8.2版本更新说明
- AA制记账本V1.7.1 & V1.7.2版本更新说明
- Oracle 更新 OPatch 工具版本 的方法 说明
- Oracle 更新 OPatch 工具版本 的方法 说明
- cocos2d-x V3.15 版本更新说明
- ROS(indigo) 安装和使用更新版本的Gazebo----3,4,5,6,7 附:中国机器人大赛中型组仿真比赛说明
- ESFramework 4.0 版本升级说明(持续更新 2011.04.25)
- 窥探Swift系列博客说明及其Swift版本间更新
- ROS(indigo) 安装和使用更新版本的Gazebo----3,4,5,6,7 附:中国机器人大赛中型组仿真比赛说明
- 基础插件3.3.1.5版本更新说明