经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Scala » 查看文章
python?Scala函数与访问修辞符实例详解
来源:jb51  时间:2022/8/3 12:49:10  对本文有异议

常规函数

  1. object Demo {
  2. def main(args: Array[String]) {
  3. println( "Returned Value : " + addInt(5,7) ); // 普通调用
  4. println( "Returned Value : " + addInt(a=5,b=7) ); // 指定参数调用
  5. }
  6. // 方法 默认参数 b = 7
  7. def addInt( a:Int, b:Int = 7 ) : Int = {
  8. var sum:Int = 0
  9. sum = a + b
  10. return sum
  11. }
  12. }

可变参数函数

  1. object Demo {
  2. def main(args: Array[String]) {
  3. printStrings("Hello", "Scala", "Python"); // 可变参数
  4. }
  5. def printStrings( args:String* ) = {
  6. var i : Int = 0;
  7. for( arg <- args ){
  8. println("Arg value[" + i + "] = " + arg );
  9. i = i + 1;
  10. }
  11. }
  12. }

使用名字调用函数

apply()函数接受另一个函数f和值v,并将函数f应用于v。

  1. object Demo {
  2. def main(args: Array[String]) {
  3. println( apply( layout, 10) )
  4. }
  5. def apply(f: Int => String, v: Int) = f(v)
  6. def layout[A](x: A) = "[" + x.toString() + "]"
  7. }
  8. // $ scalac Demo.scala
  9. // $ scala Demo

匿名函数

Scala支持一级函数,函数可以用函数文字语法表达,即(x:Int)=> x + 1,该函数可以由一个叫作函数值的对象来表示。 尝试以下表达式,它为整数创建一个后继函数 -

var inc = (x:Int) => x+1

变量inc现在是一种可以像函数那样使用的函数 - var x = inc(7)-1

还可以如下定义具有多个参数的函数:

var mul = (x: Int, y: Int) => x*y

变量mul现在是可以像函数那样使用的函数 - println(mul(3, 4))

也可以定义不带参数的函数,如下所示:

var userDir = () => { System.getProperty("user.dir") }

变量userDir现在是可以像函数那样使用的函数 - println( userDir )

访问修饰符

  1. class Outer {
  2. class Inner {
  3. private def f1() { println("f") }
  4. protected def f2() { println("f") }
  5. def f3() { println("f") }
  6. # 保护作用域Scala中的访问修饰符可以通过限定符进行扩充。形式为private [X]或protected [X]的修饰符表示为访问是私有或受保护的“最多”到X,其中X指定一些封闭的包,类或单例对象。
  7. private[professional] var workDetails = null
  8. private[society] var friends = null
  9. private[this] var secrets = null
  10. class InnerMost {
  11. f() // OK
  12. }
  13. }
  14. (new Inner).f() // Error: f is not accessible
  15. }

以上就是python Scala函数与访问修辞符实例详解的详细内容,更多关于python Scala函数访问修辞符的资料请关注w3xue其它相关文章!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号