栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Scala语言学习-06-传名参数、传值参数、传函数参数的区别

Java 更新时间:发布时间: 百科书网 趣学号
一、测试环境
名称版本
操作系统win10
CPU12th Gen Intel® Core™ i7-12700H
内存16G
JDK1.8.0_171
Scala3.1.2
二、代码
object TestParameterPassing {
    def main(args: Array[String]): Unit = {
        ValPmtPassing(ExampleFuc(100))
        NamePmtPassing(ExampleFuc(100))
        FuncPmtPassing(ExampleFuc,100)
    }
    
    def ExampleFuc(Num: Int): Int = {
        println("调用一次例子函数")
        Num
    }
    
    //传值参数测试函数
    def ValPmtPassing(Num: Int): Unit = {
        printf("传值参数函数测试:%dn",Num)
        printf("传值参数函数测试:%dn",Num)
        println("+++++++++++++++++++++")
    }
    
    //传名参数测试函数
    def NamePmtPassing(Func: => Int): Unit = {
        printf("传名参数函数测试:%dn",Func)
        printf("传名参数函数测试:%dn",Func)
        println("+++++++++++++++++++++")
    }
    
    //传函数参数测试函数
    def FuncPmtPassing(Func: Int => Int, Num: Int): Unit = {
        printf("传函数参数函数测试:%dn",Func(Num))
        printf("传函数参数函数测试:%dn",Func(Num))
        println("+++++++++++++++++++++")
    }
    
}
三、运行结果
调用一次例子函数
传值参数函数测试:100
传值参数函数测试:100
+++++++++++++++++++++
调用一次例子函数
传名参数函数测试:100
调用一次例子函数
传名参数函数测试:100
+++++++++++++++++++++
调用一次例子函数
传函数参数函数测试:100
调用一次例子函数
传函数参数函数测试:100
+++++++++++++++++++++
四、个人理解

1、传名参数:
传名参数会把传入函数的函数体整个带入,我们在函数ValPmtPassing中调用两次,所以他也会完整调用两次ExampleFuc,输出两次:调用一次例子函数。

2、传值参数:
传值参数只会在开始时调用一次ExampleFuc,再把传入函数的返回值带入,所以只输出一次:调用一次例子函数。

3、传函数参数:
实现的效果上和传名参数一样,但使用上稍有区别,传名参数只需要一个传入参数,就把方法名和方法需要的参数一并传入,而传函数参数需要传多个,除了函数名还有参数,便捷性上传名参数好很多。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/986743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号