#2 函数

函数声明和平时我见到的有点不太一样,使用关键字fun来声明。(感觉好欢乐的样子···O(∩_∩)O~~)

下面的示例,简单的声明了一个函数:

 // 这是函数声明
fun this_is_a_function() {
// 这里是函数内部
}

好,下面我们一步一步来,首先是有返回值的函数,在函数声明后添加冒号,并写上返回值类型:(这里返回的是Int类型~~~)

 // 这是有返回值的函数声明
fun this_is_a_function_by_return() : Int {
return 1
}

这里需要注意的一点是,像Java、C#这样的语言是需要在一行代码结束后加入分号的,而Kotlin则不是必须的,加不加都可以。

继续,我们来看如何传递参数进入一个函数,并且没有返回值:

// 这是需要传一个参数,并且无返回值的函数声明
fun function_name(name: String) {
println(name)
}

这里的参数类型是String。传递的参数可以是一个函数哦~

 // 声明一个(传递一个参数的函数)的函数,并无返回值
fun function1(f : (Int)) = println(f)
// 声明一个(传递两个参数的函数)的函数,并有返回值
fun function2(f : (Int, Int) -> Int) = f(1, 2) // 调用function2
val sum = { x: Int, y: Int -> x + y}
function2(sum) // 返回3

继续传参,我们来看看传入多个参数并有返回值要如何写:

// 这里是传入多个参数,并且返回一个值的函数
fun sum(num1: Int , num2: Int) : Int {
return num1 + num2
}

Kotlin还提供了一些简单的写法来声明函数:

如果函数返回一个简单的值,即可使用等号直接返回,并可以省略返回值类型:

// 这个函数返回一个43的Int值
fun getInt43() = 43

当是一个公开函数时,使用public关键字,并且不可以忽略返回值类型:

// 这是一个公开的函数,必须声明返回值类型
public fun getInt43() : Int = 43

在module内可见,则需要使用关键字internal:

// 这是一个module内部可见的函数
internal fun getInt43() = 43

ok~,函数声明完成后,我们来看看函数如何调用~

// 调用this_is_a_function函数
this_is_a_function()

感觉好简单···(\(≧▽≦)/)

有返回值的函数调用如何进行?

// 调用返回Int值的函数this_is_a_function_by_return
var number = this_is_a_function_by_return()

传参怎么进行???和其他的一样,不过还可以定义传参的顺序~感觉萌萌哒(~\(≧▽≦)/~啦啦啦)

// 声明一个函数sum
fun sum(num1:Int, num2:Int) : String = num1.toString() + "+" + num2.toString() // 这里是传参
sum(1, 2) // 返回 1+2
sum(num1 = 1, num2 = 2) // 返回 1+2
sum(num2 = 1, num1 = 2) // 返回 2+1

Kotlin 1 函数的更多相关文章

  1. 初识Kotlin之函数

    本章通过介绍Kotlin的基本函数,默认参数函数,参数不定长函数,尾递归函数,高阶函数,Lamdba表达式.来对Kotlin函数做进一步了解.将上一篇的Kotlin变量的知识得以运用.Kotlin变量 ...

  2. kotlin之函数的范围和泛型函数

    kotlin 中函数可以定义为局部函数,成员函数以及扩展函数 局部函数:就是嵌套在函数内的函数 成员函数就是定义在类或者对象之内的函数 泛型函数就是函数可以带有泛型参数,可通过尖括号来指定

  3. Kotlin 中类函数

    在kotlin中函数可以在类外部定义也可以在类内部定义,前者即为全局函数,后者,是类成员函数,语法一样 package loaderman.demo class Person { fun demo(n ...

  4. Kotlin 的函数定义和使用 (译文 转)

    Kotlin 的函数定义和使用 函数声明Kotlin 中的函数使用 fun 关键字声明 fun double(x: Int): Int {}函数用法调用函数使用传统的方法 val result = d ...

  5. Kotlin匿名函数与闭包详解

    Lambda表达式实例演练: 继续先来编写一些Lambda表达式相关的代码: 接下来想从上面的字符串数组中找到带有"h"的字符串并打印出来: 如果学习了Java8的Lambda表达 ...

  6. kotlin之函数的基本用法

    fun main(arg: Array<String>) { val )//调用函数 print(double) } fun double(x:Int):Int{ *x } kotlin函 ...

  7. kotlin 作用域函数 : let、run、with、apply、 also、takeIf、takeUnless

    1.官方文档 英文: https://kotlinlang.org/docs/reference/scope-functions.html 中文: https://www.kotlincn.net/d ...

  8. Kotlin(二) 函数定义

    1.不带参数,不返回值的函数 fun sum(){} 2.带参数,不带返回值的函数 fun sum(a:Int){} 3.带参数,带返回值的函数 fun sum(a:Int,b:Int) : Int{ ...

  9. kotlin 泛型函数

    fun<T> singletonList(item:T):List<T>{ ..... } fun<T>T.basicToString():String{ .... ...

随机推荐

  1. react中性能优化的点

    react提升代码性能的点 1.绑定如果改变作用域点话放在constructor里面做,这样可以保证整个程序的作用域绑定操作只会执行一次,而且避免子组件的无谓渲染. 2.内置的setState是个异步 ...

  2. D - Going Home POJ - 2195 网络流

    On a grid map there are n little men and n houses. In each unit time, every little man can move one ...

  3. 【luogu P1972 [SDOI2009]HH的项链】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1972 真是不懂为什么要卡莫队! #include <cmath> #include <cs ...

  4. 菜鸟笔记 -- Chapter 6.2.5 代码块

    6.2.5  代码块 在编程过程中我们通常会遇到如下这种形式的程序: package democlass; public class CodeBlock { { System.out.println( ...

  5. 没有美工一样可以获取设计各种各样的UI图

    没有美工一样可以获取设计各种各样的UI图 http://www.iconfont.cn

  6. Luogu P2590 [ZJOI2008]树的统计

    最近在学树剖,看到了这题就做了 [ZJOI2008]树的统计 思路 从题面可以知道,这题是树剖题(要求的和模板没什么区别呀喂 就是在普通的树剖上加了一个最大值 所以可以知道就是树剖+特殊的线段树 线段 ...

  7. Linux入门-第六周

    1.总结IP地址规划 IP地址的合理规划是网络设计中最重要的一环,在大型网络中必须对IP地址进行统一规划并得到实施.IP地址规划的好坏影响到网络路由协议算法的效率,影响到网络的性能,影响到网络的拓展, ...

  8. linux系统基础之---RPM管理(基于centos7.4)

  9. Linux系统修改/etc/sysconfig/i18n文件,桌面无法正常显示

    在Windows环境下使用SSH Secure Shell Client登陆VMware Workstation中Linux系统查询hive表时,中文显示乱码:数字和url显示为NULL,网上说: 1 ...

  10. SpringBoot向outlook发送邮件

    首先要登陆outlook邮箱,点击设置滑到最下面选择完整设置 进入后选择邮件->同步电子邮件 打开pop如上设置 下面是我的application.propertis设置 请填上自己的邮箱名与密 ...