仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 882|回复: 9
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之【F#2.0系列】利用选项(Option)

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:20:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以前很热炒跨平台,主要是由于硅谷挑战微软霸主地位的热情,但是冷静下来后,跨平台往往不是那么一回事。假设你有个软件,所谓的跨平台,你只需要为第二个平台上重新编译一次就行了,这样很难么?利用选项(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:23 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
飘灵儿 该用户已被删除
板凳
 楼主| 发表于 2015-1-24 19:16:44 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
透明 该用户已被删除
地板
发表于 2015-2-2 12:43:26 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-7 20:15:52 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
admin 该用户已被删除
6#
发表于 2015-2-23 10:28:34 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
精灵巫婆 该用户已被删除
7#
发表于 2015-2-23 10:28:34 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
再现理想 该用户已被删除
8#
发表于 2015-3-7 08:11:41 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
小魔女 该用户已被删除
9#
发表于 2015-3-14 15:58:49 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
只想知道 该用户已被删除
10#
发表于 2015-3-21 12:16:47 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 08:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表