欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

云计算中scala方法的定义方式解析

程序员文章站 2022-06-21 21:57:37
初次 接触到scala发现scala定义方法的方式和java有很大的区别 1.下面是我写的一个测试scala方法定义的demo. package?com.scala.demo?? ?...

初次 接触到scala发现scala定义方法的方式和java有很大的区别

1.下面是我写的一个测试scala方法定义的demo.

  1. package?com.scala.demo??
  2. ??
  3. ??
  4. object?FunctionDemo?{??
  5. ???//定义方法1??
  6. ??def?function1()??
  7. ??{??
  8. ????println("function1?run!")??
  9. ??}??
  10. ???//?定义方法2,效果和function1是一样的,可见Unit的作用void??
  11. ??def?function2():Unit=??
  12. ??{??
  13. ????println("function2?run!")??
  14. ??}??
  15. ???//定义方法3??
  16. ??def?fcunction3(a:Int,b:Int):Int?={??//=不可去掉??
  17. ????a+b??
  18. ??}??
  19. ??/**?
  20. ???*?function4主要是测试=是否什么时候是必须的?
  21. ???*/??
  22. ??def?function4()=??
  23. ??{??
  24. ????println("function4?run!")??
  25. ??}??
  26. ??def?function5():Int=??
  27. ??{??
  28. ????2+5??
  29. ??}??
  30. ??def?function6(a:Int,b:Int)=??
  31. ??{??
  32. ????val?s=a+b??
  33. ????println("function6:"+s);??
  34. ??}??
  35. ??//定义一个参数,觉得是static?类型的??
  36. ??val?staticfunction=????
  37. ??{??
  38. ????println("staticfunction?run!")??
  39. ??}??
  40. ??val?value1=??
  41. ??{??
  42. ????1+2+3??
  43. ??}??
  44. ??val?value2=??
  45. ??{??
  46. ????val?a=1+2+3??
  47. ????val?b=a+2??
  48. ??}??
  49. ??val?value3=2+3+4??
  50. ????
  51. ??def?main(args:Array[String])??
  52. ??{??
  53. ???function1??
  54. ???function2??
  55. ???println("function3:"+?fcunction3(1,2))??
  56. ???function4??
  57. ???println("function5:"+function5)??
  58. ???val?f1=function6?_??
  59. ???f1(1,2)??
  60. ???staticfunction??//发现无法运行,因为staticfunction是一个参数??
  61. ???println("staticfunction:"+staticfunction)??//输出:(),相对于null??
  62. ???println(value1+";"+value2+";"+value3)?//value2=null??
  63. ??}??
  64. }??运行的结果为:
  65.  
    1. staticfunction?run!??
    2. function1?run!??
    3. function2?run!??
    4. function3:3??
    5. function4?run!??
    6. function5:7??
    7. function6:3??
    8. staticfunction:()??
    9. 6;();9??
      通过上面的输出结果可以发现:

       

      1.把方法赋值给一个参数的话,这个方法会在参数编译的时候就执行,相当于该参数是一个static类型的.当然scala里面是没有static类型的.

      2.当有返回值的时候,定义的时候"="是不能省略的,没有返回值的时候,无论有没有参数"="都是可以省略的,例如function6,然而function6的调用方式应该怎么写,我只想到了如上写法,求大神指点

      3.初始化参数的时候可以加{}

       

      匿名方法的定义方式

      云计算中scala方法的定义方式解析

      例如:args.

      1. args.foreach((arg:?String)?=>?println(arg))??其中args是数组

         

        scala方法的定义就介绍到这里,下一章我们介绍下数组的初始化以及遍历的方法。