为什么Scala不允许在函数类型定义中使用参数名称?

 林禎峰佩蓉 发布于 2023-02-12 16:59

Scala不允许说:

def m(f:(numer:Double,denom:Double)=>tan:Double) = {...}

就像使用类型注释变量意味着变量至少具有一些文档一样,因此允许函数类型定义中的变量提供一些文档.由于它是可选的,程序员将决定何时这样做.但上述内容肯定比以下内容更具信息性:

def m(f:(Double,Double)=>Double) = {...}

这会增加灵活性会破坏语言语法吗?

1 个回答
  • 可以在使用类型别名中找到解决方法.

    type Numer = Double
    type Denom = Double
    type Tan   = Double
    def m(f:(Numer,Denom)=>Tan) = {...}
    

    在你的方式中使用语法会带来问题和歧义 - 例如,编译器会检查目标函数是否具有相同的变量名称?(想想会绊倒你提议的那个功能的用户)

    2023-02-12 17:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有