Scala 传名参数和传值参数
1 package com.atguigu.chapter04 2 3 object ControlAbstraction { 4 def main(args: Array[String]): Unit = { 5 //1. 传值参数(传递计算后的值) 6 def f0(a:Int):Unit = { 7 println("a:" + a) 8 println("a:"+a) 9 } 10 f0(23) 11 def f1():Int={ 12 println("这是一个代码块!f1()") 13 12 14 } 15 f0(f1()) 16 17 //2. 传名参数(传递代码块) a : =>Int 代码块的返回值是Int类型的 18 println("```````````````````````````") 19 def f2(a : =>Int):Int={ 20 println("a:"+a) 21 println("a:"+a) 22 1 23 } 24 f2(f1()) 25 } 26 }
我们可以看到:
当f1作为一个代码块传入f2时,每次在f2中用到了变量a,那么整个f1函数就会被执行一次!
当f1的返回值作为参数传入f2时,每次在f2中用到了变量a,那么就会把a替换为传入的参数值,而f1函数只会执行一次!
好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/15817243.html
欢迎来我的51CTO博客主页踩一踩 我的51CTO博客
文章中的公众号名称可能有误,请统一搜索:靠谱杨的秘密基地