控制流程(Control Flow)
在函数式编程(中)一文中,我们初步了解了F#在函数式编程范式下的控制流程,即if, elif, then, else等组成的结构。在命令式编程范式下,F#提供了更多的控制流程支持,包括if,while和for。
在命令式编程范式下的if结构与函数式编程下对应结构的主要差别在于,对于if分支,调用的函数为unit类型(即无返回值),而且并不要求必须使用else分支:
F# Code
if System.DateTime.Now.DayOfWeek = System.DayOfWeek.Thursday then
print_endline "Thursday play list: lazy afternoon"
这里print_endline函数的类型为string -> int。尽管else分支不是必须的,但如果需要,你也可以加上,不过else分支也必须为unit类型。
F# Code
if System.DateTime.Now.DayOfWeek = System.DayOfWeek.Thursday then
print_endline "Thursday play list: lazy afternoon"
else
print_endline "Alt play list: pop music"
至此,不管if结构的分支是否返回值,我们都有办法表示,这样就跟C#的if结构一致了。
在C#中,如果一个分支的语句多于一条,需要使用花括号,而在F#中,分支所包含的语句要通过缩进来表示。
for循环是命令式编程中一种常见的结构。如果你有过C#或VB.NET的经验,那么很容易理解:
F# Code
let sentence = [| "To "; "live "; "is "; "to "; "function." |]
for index = 0 to Array.length sentence - 1 do
System.Console.Write sentence.[index]
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!