vs2019 开始自己的第一个F#程序

举报
悲恋花丶无心之人 发表于 2021/02/02 23:03:49 2021/02/02
【摘要】 这是针对于博客vs2019安装和使用教程(详细)的F#项目新建示例,代码比较简单,适合入门~ 目录 一、安装F#环境 二、启动程序 三、编写小程序 四、运行结果 五、注意事项 一、安装F#环境 1.运行安装程序,点击“更多”下拉菜单中的“修改” 2.勾选“数据科学和分析应用程序”和“.NET桌面开发”(可选),点击“下载时安装” 二、启动...

这是针对于博客vs2019安装和使用教程(详细)的F#项目新建示例,代码比较简单,适合入门~


目录

一、安装F#环境

二、启动程序

三、编写小程序

四、运行结果

五、注意事项


一、安装F#环境

1.运行安装程序,点击“更多”下拉菜单中的“修改”

2.勾选“数据科学和分析应用程序”和“.NET桌面开发”(可选),点击“下载时安装”


二、启动程序

1.点击菜单栏-->文件-->新建-->项目,语言选择F#,选择控制台应用程序,下一步

2.选择项目位置,命名项目,之后点击确定

3.可以看到生成了两个.fs文件

                                                                              

4.两个文件内容如下

AssemblyInfo.fs


  
  1. namespace fsharp_first_try.AssemblyInfo
  2. open System.Reflection
  3. open System.Runtime.CompilerServices
  4. open System.Runtime.InteropServices
  5. // General Information about an assembly is controlled through the following
  6. // set of attributes. Change these attribute values to modify the information
  7. // associated with an assembly.
  8. [<assembly: AssemblyTitle("fsharp_first_try")>]
  9. [<assembly: AssemblyDescription("")>]
  10. [<assembly: AssemblyConfiguration("")>]
  11. [<assembly: AssemblyCompany("")>]
  12. [<assembly: AssemblyProduct("fsharp_first_try")>]
  13. [<assembly: AssemblyCopyright("Copyright © 2019")>]
  14. [<assembly: AssemblyTrademark("")>]
  15. [<assembly: AssemblyCulture("")>]
  16. // Setting ComVisible to false makes the types in this assembly not visible
  17. // to COM components. If you need to access a type in this assembly from
  18. // COM, set the ComVisible attribute to true on that type.
  19. [<assembly: ComVisible(false)>]
  20. // The following GUID is for the ID of the typelib if this project is exposed to COM
  21. [<assembly: Guid("9b4ab5cd-49d0-4416-a02f-29ec1447478d")>]
  22. // Version information for an assembly consists of the following four values:
  23. //
  24. // Major Version
  25. // Minor Version
  26. // Build Number
  27. // Revision
  28. //
  29. // You can specify all the values or you can default the Build and Revision Numbers
  30. // by using the '*' as shown below:
  31. // [<assembly: AssemblyVersion("1.0.*")>]
  32. [<assembly: AssemblyVersion("1.0.0.0")>]
  33. [<assembly: AssemblyFileVersion("1.0.0.0")>]
  34. do
  35. ()

Program.fs


  
  1. [<EntryPoint>]
  2. let main argv =
  3. printfn "%A" argv
  4. 0 // return an integer exit code

三、编写小程序

1.编写一个小程序,主要是对分支语句(if-then-else)、for循环函数的基本用法进行简单介绍,代码中有注释说明,不再赘述。程序如下:

Program.fs


  
  1. // Learn more about F# at http://fsharp.org
  2. // See the 'F# Tutorial' project for more help.
  3. //函数名称为Subtract1,参数为number1和number2,返回类型为double
  4. let Subtract1 number1 number2 : double =
  5. if(number1>number2)then
  6. number1 - number2 //返回
  7. else
  8. number2 - number1 //返回
  9. let Subtract2 number1 number2 : double =
  10. let number3: double = 0.0
  11. if(number1>number2)then
  12. let number3 = number1 - number2
  13. printfn "number3_2 is:%A" number3
  14. else
  15. let number3 = number2 - number1
  16. printfn "number4_2 is:%A" number3
  17. number3 //返回
  18. [<EntryPoint>] //特性标记的函数,必须是编译序列中最后一个文件中的最后一个声明
  19. let main argv =
  20. printfn "%A" argv
  21. //输出a+b的结果赋值给c
  22. let a = 1
  23. let b = 2
  24. let c = a + b
  25. printfn "c is:%A" c
  26. // 输出数字0到9
  27. let d = [0 .. 9]
  28. printfn "d is:%A" d
  29. // 输出浮点数和强制类型转换为整型的数
  30. let e: double = 6.9
  31. printfn "double e:%A" e
  32. printfn "double2int e is:%A" (int e)
  33. // 重新赋值为整型
  34. let e: int = 6
  35. printfn "int e is:%A" e
  36. // 减法函数1(if then else)
  37. let number3_1 = Subtract1 2.3 3.4
  38. printfn "number3_1 is:%A" number3_1
  39. let number4_1= Subtract1 5.4 3.2
  40. printfn "number4_1 is:%A" number4_1
  41. // 减法函数2(if then else)
  42. let number3_2 = Subtract2 2.3 3.4
  43. let number4_2 = Subtract2 5.4 3.2
  44. //for 循环
  45. let f = [for i in 0 .. 9 -> i]
  46. printfn "f is:%A" f
  47. //创建一个长度为10,元素都为0的数组
  48. let g = Array.create 10 0
  49. printfn "g is:%A" g
  50. //对每个数组中的元素进行赋值,值为其索引
  51. for i = 0 to g.Length - 1
  52. do Array.set g i i
  53. printfn "顺序输出:"
  54. for i = 0 to g.Length - 1
  55. do
  56. printfn "%A" (Array.get g i)
  57. printfn "逆序输出:"
  58. for i = g.Length - 1 downto 0
  59. do
  60. printfn "%A" (Array.get g i)
  61. 0 // return an integer exit code

四、运行结果

执行代码:

                                                                           

点击上方绿色启动,运行程序。

其中for...to...顺序输出,for ...downto...逆序输出:

                                                          

是不是很简单呢~


五、注意事项

1.[<EntryPoint>] 特性标记的函数,必须是编译序列中最后一个文件中的最后一个声明:也就是说如果在这个特性标记的代码段后面再写代码则会报错,应该在前面写,例如两个减法函数Subtract1Subtract2

2.分支语句中let不能是最后一行

3.函数返回值类型必须和函数声明的类型一致,不要忘写


返回至原博客:vs2019安装和使用教程(详细)

 

 

文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。

原文链接:nickhuang1996.blog.csdn.net/article/details/102721010

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。