函数

作者: warmingood | 来源:发表于2018-05-17 15:48 被阅读0次

1.函数的定义

有名字的一段代码块,执行和名字有关的功能

// 函数
fun add(x:Int, y:Int):Int{
  return x+y
}
// 可以简写为
fun add(x: Int, y: Int) = x+y

2.可变参数修饰符 vararg

输入的参数个数可变

fun add(vararg x: Int):Int{
  var total = 0
  for(i in x){
    total+=i
  }
  return total
}
// 调用
var num = add(1, 2, 3, 4, 5)
// 调用方式2,如果参数是可变参数类型,那么可以传入一个数组(前面加一个*)解包
var array = arrayOf(1,2,3,4,5)
var num2 = add(*array)

3.函数的作用域

3.1 成员函数

定义在类,object或者接口内的函数,也成为方法

3.2 本地函数

Kotlin允许把函数声明在其他函数的内部,称之为本地函数或者嵌套函数
内部的函数只有在外部函数内才能生效
内部函数可以访问嵌套主函数的变量,不需要重新声明

fun printArea(w: Int, h:Int){
  // 声明在函数内部的函数
  // fun area(w:Int, h:Int) = w * h
  // 可以访问嵌套主函数的变量
  fun area = w * h
  val area = area()
  print(${area})
}
3.3 顶层函数

不属于任何源码文件的小集团(class interface 对象),就像java中的静态帮助类

4.命名参数和默认参数

4.1命名参数

调用函数传参时指出参数的名称

fun area(weight: Int, height: Int) = weight*height
area(height = 2, weight = 3)
4.2 默认参数

定义函数时给出默认值
fun add(x:Int = 1, y:Int = 2) = x+y

5.操作符重载

有一组固定的操作符可以用作函数,但是不能组合使用
要进行操作符重载的话,需要在前面添加operator关键字,对应的操作符英文单词作为函数的名称

class Matrix(val a: Int, val b:Int, val c:Int, val d:Int){
   operator fun plus(m: Matrix): Matrix{
     return Matrix(a+m.a, b+m.b, c+m.c, d+m.d)
  }
}
// 调用
val m1 = Matrix(1,2,3,4)
val m2 = Matrix(2,3,4,5)
val m1m2 = m1+m2

6.基础操作符

操作 函数名
a + b a.plus(b)
c - d c.minus(d)
e * f e.times(f)
g / h g.div(h)
i % j i.mod(j)
k..m k.rangeTo(m)
6.1 in 和 contains()
6.2 invoke 和 ()

圆括号也是操作符 对应函数名为invoke

7.函数扩展

像顶层函数一样定义,直接举例

fun Int.square() = this*this
// 调用
val num = 3
num.square()

操作符重载加上扩展方法

operator fun String.times(int:Int):String{
  var stringBuilder = StringBuilder()
  // 0..100就是[0,100]
  // 0 until 100 就是[0,100) 不包含结束的范围
  for(i in 0 util int){
    stringBuilder.append(this)
  }
  return stringBuilder
}

var a = "min"
printLn(a*13)

8.泛型函数

使用泛型可以让函数接收任意类型的参数

fun <T> outputString(a:T, b:T):String{
  return "$a和$b" 
}

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:函数

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