📜  Kotlin函数变体示例

📅  最后修改于: 2022-05-13 01:54:46.462000             🧑  作者: Mango

Kotlin函数变体示例

在 Kotlin 中定义函数时,我们有许多可选的注解。我们将一一学习。

在 Kotlin 中定义一个函数:

Visibility modifier fun functionName (argument name: type name, ...): return type{
  .....
  // function body
  .....
  return value
 }

通常,这是在 Kotlin 中定义函数的正确方式。

例子:

private fun gfg1( a : Int, b :Int ): Int {
  var c : Int 
  c = a + b
  return c
}

现在我们来看看这个函数的变化。



可见性修改器

在 Kotlin 中,我们在定义函数时可以选择指定 Visibility 修饰符。如果在定义时没有提到它,默认情况下它被认为是公共的。

例子:

fun gfg2( a : Int, b :Int ): Int {
  var c : Int 
  c = a + b
  return c
}

gfg1( ) 和 gfg2( ) 都在做同样的工作,但 gfg1 是一个私有函数而 gfg2 是一个公共函数,因为我们没有提到它的可见性修饰符。

单表达式函数

在 Kotlin 中,如果函数只有一个表达式,我们可以省略大括号。

例子:

fun gfg3( a: Int , b :Int ) : Int  = a + b

我们不使用花括号,而是在函数体中使用“=”符号。我们还可以省略 Single 表达式函数中的返回类型。

fun gfg4( a: Int , b :Int ) = a + b

gfg4( ) 和 gfg3( ) 相同。

返回类型

在 Kotlin 中,在定义函数时,我们需要声明函数中返回的数据类型。如果我们什么都不返回,那么我们可以选择指定 ' unit ' 或者如果我们不指定任何东西,Kotlin 会认为它是一个没有返回任何东西的函数。

例子:

// declaring the return type as 
// unit as it isn't returing anything.
fun gfg5( a : Int): Unit {
  print(a)
}
// Here we have mention the return type,
// kotlin can infer the return type
fun gfg6( a : Int){
  print(a)
}

gfg5 ( ) 和 gfg6 ( ) 都是一样的。

争论

当我们在一个函数中有很多参数时,很难记住每个参数的位置。因此,在这里我们可以使用名称参数,在这里我们需要指定名称以及函数的值。我们可以更改值的顺序,该值将分配给一个与该值具有相同名称的参数。

例子:

fun main( ){
    val res1 = gfg7( arg1 = 2, arg2 = 3) //using name argument 
    val res2 = gfg7( arg2 = 3, arg1 = 2 )  // sequence doesn't matter here.
    
}

fun gfg7( arg1 : Int, arg2 :Int ): Int {
  return arg1 + arg2
}