美文网首页程序员Android知识半栈工程师
Kotlin 程序员词典: Parameter vs Argum

Kotlin 程序员词典: Parameter vs Argum

作者: 唐先僧 | 来源:发表于2018-02-09 21:49 被阅读0次

Igor Wojda 合作编写 Android Development with Kotlin 这本图书的过程中,对我们而言最大的挑战之一就是学习并完全理解技术术语。当然,人们在每天的交流中都使用这些术语,但是通常并不在意是否正确地使用这些术语。典型的范例就是 argumentparameter 之间的差别。人们常常交替使用这两者,但是它们实际代表的是两样不同的东西。同样,人们常说的 lambda 表达式 ,其实它们真正的意思是任意一个 字面意义的函数(function literal)。我们必须把这些词汇提取出来并且准确地理解它们真正的含义。这比我想象的要难得多。这就是为什么我决定将我所学到的知识写成一系列文章,让其他人能够更容易地理解这些术语。

Parameter vs Argument, Type parameter vs Type argument

Parameterargument 很容易混淆,但是它们是两个完全不同的概念。我们一起来看一看它们的含义以及两者的区别。我们还将弄明白 type parametertype argument

Parameter vs Argument

Parameter 是在函数声明中定义的变量,而 argument 是在调用这个函数时真实传递的值。为了理解这一区别,我们来看一个示例函数以及它的使用:

fun randomString(length: Int): String {
    // ....
}
randomString(10)

在这个例子中,length 是一个 parameter10 (在函数调用中使用)是一个 argument。一般的定义是:

Parameter 是在函数声明中定义的变量。Argument 是在调用函数时,这个变量的真实值。

对话实例:

  • randomString 函数抛出了一个错误。你给 length parameter 传递了什么 argument
  • -1
  • 这就是出错的原因。randomString 还不支持 length parameter 的值为负数。

Type parameter vs Type argument

parameter 和 argument 之间的区别是通用的,适用于所有类型的函数:方法,构造函数等。它同样适用于泛型。我们一起来看一个泛型类的实例:

class Box<T>
val a: Box<Int> = Box()

这里 Box 是一个泛型类,它定义了一个 type parameter T,在实际使用中,我们指定了 Int 作为 type argument(这篇文章说明了为什么是类型而不是类)。一般的定义是这样的:

Type parameter 是在泛型中定义的类型占位符,Type argument 是参数化泛型时使用的真实类型。

本文译自 :
Kotlin programmer dictionary
Programmer dictionary: Parameter vs Argument, Type parameter vs Type argument

相关文章

网友评论

    本文标题:Kotlin 程序员词典: Parameter vs Argum

    本文链接:https://www.haomeiwen.com/subject/hzmqtftx.html