Kotlin 1 函数
#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 函数的更多相关文章
- 初识Kotlin之函数
本章通过介绍Kotlin的基本函数,默认参数函数,参数不定长函数,尾递归函数,高阶函数,Lamdba表达式.来对Kotlin函数做进一步了解.将上一篇的Kotlin变量的知识得以运用.Kotlin变量 ...
- kotlin之函数的范围和泛型函数
kotlin 中函数可以定义为局部函数,成员函数以及扩展函数 局部函数:就是嵌套在函数内的函数 成员函数就是定义在类或者对象之内的函数 泛型函数就是函数可以带有泛型参数,可通过尖括号来指定
- Kotlin 中类函数
在kotlin中函数可以在类外部定义也可以在类内部定义,前者即为全局函数,后者,是类成员函数,语法一样 package loaderman.demo class Person { fun demo(n ...
- Kotlin 的函数定义和使用 (译文 转)
Kotlin 的函数定义和使用 函数声明Kotlin 中的函数使用 fun 关键字声明 fun double(x: Int): Int {}函数用法调用函数使用传统的方法 val result = d ...
- Kotlin匿名函数与闭包详解
Lambda表达式实例演练: 继续先来编写一些Lambda表达式相关的代码: 接下来想从上面的字符串数组中找到带有"h"的字符串并打印出来: 如果学习了Java8的Lambda表达 ...
- kotlin之函数的基本用法
fun main(arg: Array<String>) { val )//调用函数 print(double) } fun double(x:Int):Int{ *x } kotlin函 ...
- kotlin 作用域函数 : let、run、with、apply、 also、takeIf、takeUnless
1.官方文档 英文: https://kotlinlang.org/docs/reference/scope-functions.html 中文: https://www.kotlincn.net/d ...
- Kotlin(二) 函数定义
1.不带参数,不返回值的函数 fun sum(){} 2.带参数,不带返回值的函数 fun sum(a:Int){} 3.带参数,带返回值的函数 fun sum(a:Int,b:Int) : Int{ ...
- kotlin 泛型函数
fun<T> singletonList(item:T):List<T>{ ..... } fun<T>T.basicToString():String{ .... ...
随机推荐
- 模拟,找次品硬币,Counterfeit Dollar(POJ 1013)
题目链接:http://poj.org/problem?id=1013 解题报告: 1.由于次品的重量不清楚,用time['L'+1]来记录各个字母被怀疑的次数.为负数则轻,为正数则重. 2.用zer ...
- kiwi installation
Mainly the installstion methods follow the url: https://github.com/emolch/kiwi/wiki/Installation the ...
- ART_20190430
Algorithm-算法题 第一个只出现一次的字符 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要 ...
- ueditor图片上传,网络连接错误的解决方案
错误产生的原因是ueditor/net目录中的Uploader.cs在网站发布之后就没有了,重新上传这个文件,问题就解决了
- 【luogu T34117 打油门】 题解
王强怎么这么强啊 王强太强了 二维树状数组 #include <cstdio> #include <cstring> #include <iostream> #in ...
- 旧文备份:硬盘MBR引导记录损坏的一种修复方法
硬盘MBR信息损坏原因:硬盘上安装了windows XP和linux双系统,在windows下安装一套软件,破解的时候修改了硬盘的序列号,结果导致引导系统的grub无法完成linux的引导,只能进到w ...
- 下载YouTube视频的网站和工具
1.界面友好,可选择的清晰度较多(我个人用这个比较多) http://en.savefrom.net/ 2.几乎可以解析到所有的清晰度 http://www.clipconverter.cc 3.可选 ...
- c语言描述的链队列的基本操作
#include<stdio.h> #include<stdlib.h> #define ok 0 #define error 1 //链队列特点在于不仅有链的头指针和尾指针, ...
- jquery 发送短信60后重新获取
先需要form表单,获取短信的按钮做成两个相同的,一个显示,一个隐藏. <div class="item"> <p clas ...
- Python 学习笔记(三)数字
Python 数字 int 整型 是正或负整数 2 long 长整型 整数最后是一个大写或小写的L 2L float 浮点型 由整数部分和小数部分组成 2.0 complex 复数 小 ...