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],结果就出现了。

  • 相关阅读:
    python入门的120个基础练习
    python日志打印模块
    自动化测试总结
    Http_requests
    安装electron-ssr出现的问题
    豆瓣油猴脚本
    ubuntu 16.04 無法進入tty1-6(未解決)
    如何用firefox chrome chromium看只支持IE浏览器的视频 通过wine 安装IE
    python reverse 和reversed
    python 编码问题
  • 原文地址:https://www.cnblogs.com/weloveamber/p/3783967.html
Copyright © 2011-2022 走看看