仓酷云

标题: ASP.NET网站制作之【F#2.0系列】利用选项(Option) [打印本页]

作者: 飘灵儿    时间: 2015-1-16 22:20
标题: ASP.NET网站制作之【F#2.0系列】利用选项(Option)
以前很热炒跨平台,主要是由于硅谷挑战微软霸主地位的热情,但是冷静下来后,跨平台往往不是那么一回事。假设你有个软件,所谓的跨平台,你只需要为第二个平台上重新编译一次就行了,这样很难么?利用选项(Option)
type T option =
     None
     Some of T
  上面看一个例子:
> let people = [ ("Adam", None);
                 ("Eve" , None);
                 ("Cain", Some("Adam","Eve"));
                 ("Abel", Some("Adam","Eve")) ];;
val people : (string * (string *string) option) list
  利用形式婚配(Patternmatching)来天生option:
> let showParents (name,parents) =
      match parents with
       Some(dad,mum) -> printfn "%s has father %s, mother %s" name dad mum
       None          -> printfn "%s has no parents!" name;;
val showParents : (string * (string * string) option) -> unit
 
> showParents people.[0];;
Adam has no parents
val it : unit = ()
  Option的一些有效的办法:
  办法  范例  形貌
  Option.get  Toption->T  前往一个Some范例的值。或抛非常
  Option.isNone  Toption->bool  前往一个Option是不是是None
  Option.map  (T->U)->Toption->Uoption  假如是None,就前往None。假如是Some(x),前往Some(fx),f是给定的函数
  Option.iter  (T->unit)->Toption->unit  对Some范例的Option实行指定的办法。

  一些例子:
> Option.map(fun x->x) a;;
val it : (string * string) option = Some ("aa", "bb")
> Option.map(fun x-> match x with  (first,second) -> first) a;;
val it : string option = Some "aa"
> Option.map(fun x-> match x with  (first,second) -> second) a;;
val it : string option = Some "bb"
> 
> Option.iter(fun x-> match x with  (first:string,second) -> printfn "%s" (first+second)) a;;
aabb
val it : unit = ()
 
> 
  利用Option范例举行把持
  看这个例子:
let fetch url =
    try Some (http url)
    with :? System.Net.WebException -> None
  http函数是在之前章节界说的猎取html的谁人办法。在None的情形下抛出一个exception。乐成的会见会前往一个Some值,也就是Option范例的值。然后我们就能够利用Option值来举行形式婚配:
> match (fetch "http://www.nature.com") with
   Some text -> printfn "text = %s" text
   None -> printfn "**** no web page found";;
text = <HTML> ... </HTML> (note: the HTML is shown here if connected to the web)
val it : unit = ()
那做企业软件是不是最好用J2EE?
作者: 变相怪杰    时间: 2015-1-19 09:06
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
作者: 飘灵儿    时间: 2015-1-24 19:16
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
作者: 透明    时间: 2015-2-2 12:43
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
作者: 金色的骷髅    时间: 2015-2-7 20:15
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
作者: admin    时间: 2015-2-23 10:28
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
作者: 精灵巫婆    时间: 2015-2-23 10:28
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
作者: 再现理想    时间: 2015-3-7 08:11
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
作者: 小魔女    时间: 2015-3-14 15:58
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
作者: 只想知道    时间: 2015-3-21 12:16
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2