当前位置: 首页 > 知识库问答 >
问题:

函数参数的行为是否像Kotlin中的val类型的变量?

赏彭薄
2023-03-14

我正在创建一个函数,并试图增加声明为整数的参数的值。但它表示,该参数的值不能重新分配。我是一个初学者,如果我缺少一些概念,请告诉我。

共有1个答案

萧嘉茂
2023-03-14

是的,在Kotlin函数中不能更改参数。

(但是,如果它们引用可变对象,那么这些对象可以更改。

这与Java不同,Java中的参数是可变的(除非指定为final)。

这一行为在Kotlin里程碑M5.1中宣布,其中解释为避免混淆(尤其是在构造函数中),并促进良好的风格。

另请参见此答案。

 类似资料:
  • 在TypeScript中,我可以将函数的一个参数声明为类型函数。是否有一种“类型安全”的方式来完成这件事,而这是我所缺少的?例如,考虑以下内容: save回调不是类型安全的,我给它一个回调函数,其中函数的参数是一个字符串,但我传递给它一个数字,并且编译时没有错误。我可以在保存类型安全函数中设置结果参数吗? TL;DR版本:在TypeScript中是否存在与.NET委托等价物?

  • 为什么Kotlin删除了在Java中非常有用的final或val函数参数?

  • 问题内容: 假设我有任何变量,定义如下: 我想要一个检查变量类型是否像函数一样的函数。即: 如何检查变量是否为上述定义的类型? 问题答案: 当然,下划线的方式效率更高,但是当效率不是问题时,最好的检查方法是写在@Paul Rosania链接的下划线页面上。 受下划线启发,最终的isFunction函数如下:

  • 问题内容: 我知道,在Python中通常不赞成使用类型检查函数参数,但我认为这样做很有意义。 在我的项目中,我有一个抽象基类和一个子类,该子类具有更多功能,例如旋转,幅度变化等。数字的列表和元组也将返回True,因为我也有许多接受这些Coord类型作为参数的函数和方法。 。我已经设置了装饰器来检查这些方法的参数。这是一个简化的版本: 这个版本非常简单,仍然有一些错误。只是为了说明这一点。它的用法如

  • 问题 你希望检查一个变量是否为一个数组。 myArray = [] console.log typeof myArray // outputs 'object' “typeof” 运算符为数组输出了一个错误的结果。 解决方案 使用下面的代码: typeIsArray = Array.isArray || ( value ) -> return {}.toString.call( value ) i