zoukankan      html  css  js  c++  java
  • 使用Fsharp 探索 Dotnet 平台

    Fsharp的交互开发环境使得我们在了解DotNet平台时能够快速的获得需要的反馈。

    反馈在任何技艺的磨练过程中必不可少,我认为也是最重要的环节之一。在“一万小时天才理论”中,著名的髓鞘质就是在快速有效的反馈过程中产生的。虽然在不确定哪些训练是最有效的训练前,大量的练习不见得有多大好处,相对结果的收集对于自己编程技艺的获得却必定有极大的帮助。

    Visual Studio 2013中内嵌了对 FSharp的支持。我最常用的命令有:

    1. 选中指定代码后[Alt+Enter] ==>执行代码
    2. 在一行的末尾[Ctrl+']==>执行此行代码
    3. 在交互界面中输入完代码后,打两个分号";;",再按[shift + Enter] ==> 执行代码

    下面是一个简单的小例子

    module ExploreDotNet
    
    System.IO.Directory.SetCurrentDirectory(__SOURCE_DIRECTORY__)
    
    //System.IO.Directory.GetCurrentDirectory()
    
    open System
    
    [<CLIMutable>]
    type DateSerTest = 
        {
            Local:DateTime;
            Utc:DateTime
        }
    
    let ser = new System.Xml.Serialization.XmlSerializer(typeof<DateSerTest>)
    
    let d = {
        Local = DateTime.SpecifyKind(new DateTime(2014, 10, 1), DateTimeKind.Local)
        Utc = DateTime.SpecifyKind(new DateTime(2014, 10, 1), DateTimeKind.Utc)
    }
    
    let testSerialization(dt:DateSerTest) =
        let filename = "serialization.xml"
        use ms = new IO.MemoryStream()
        ser.Serialize(ms, o = dt)
        Text.Encoding.Default.GetString(ms.GetBuffer()) |> Console.WriteLine
        ms.Close()
    
    testSerialization d

    结果:

    <?xml version="1.0"?>
    <DateSerTest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Local>2014-10-01T00:00:00+08:00</Local>
      <Utc>2014-10-01T00:00:00Z</Utc>
    </DateSerTest>
    

    参考了www.fsharpforfunandprofit.com的代码。有意思的是我这里使用的是MemoryStream。在敲入代码的过程中对Stream,Serialization的概念虽然一开始有点模糊了,对于一些函数的返会值不是很明确;这时只要选中那些对象[Alt+Enter],结果就出现了。

  • 相关阅读:
    Yii隐藏单入口
    JS字符串的问题
    暑假第三测
    暑假第二测
    暑假第一测
    沈阳集训day4
    沈阳集训day3
    P2571 [SCOI2010]传送带
    CF626C Block Towers
    洛谷P4171 [JSOI2010]满汉全席
  • 原文地址:https://www.cnblogs.com/weloveamber/p/3783967.html
Copyright © 2011-2022 走看看