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{ .... ...
随机推荐
- LA 2038 最少点覆盖
题目链接:https://vjudge.net/problem/UVALive-2038 题意:我看了原题,lrj的书上题意写错了,应该是最少点覆盖,当然可以用最大匹配去做,由于是树形的: 可以树形D ...
- centos 6.6 下yum安装部署zabbix2.4所遇到web安装页面无法打开的问题
nginx配置zabbix下setup.php(web页面)无法显示,浏览器无法打开 1.检查系统是否安装nginx,以便解析html 已安装,安装方式为yum安装,可以解析其他页面 2.php没有完 ...
- [BJWC2008]秦腾与教学评估
嘟嘟嘟 二分好题. 怎么二分呢?反正我是没想出来. 看了题解. 因为只有一个为奇数的点,所以对于一个位置x,求出区间[0, x]的教总和,如果为奇数,说明x取大了:否则x取小了(妙啊). 虽然答案在i ...
- 【洛谷P2168】[NOI2015]荷马史诗
荷马史诗 建一个k叉哈夫曼树,用堆维护一下 // luogu-judger-enable-o2 #include<iostream> #include<cstdio> #inc ...
- Entity Framework 一
本篇主要介绍:EntityFramework简介, 实体框架架构图, EF版本 实体框架: 编写和管理数据访问的ADO.Net代码是一件单调乏味的工作.微软已经提供了一个名为“实体框架”的O / RM ...
- 匿名union
#include <stdio.h> enum node_type{ t_int,t_double}; struct node{ enum node_type type; ...
- leetcode笔记(八)263. Ugly Number
题目描述 Write a program to check whether a given number is an ugly number. Ugly numbers are positive nu ...
- chromium之ThreadLocalStorage
看看头文件怎么用 // Wrapper for thread local storage. This class doesn't do much except provide // an API fo ...
- Graylog2日志服务安装配置
软件版本: mongodb-org-3.2.10 jdk-1.8.0 (推荐rpm包,不然要修改Graylog启动脚本定义的JAVA命令路径) elasticsearch-2.4.1 (Graylog ...
- 模块importlib介绍
importlib包的目的是双重的.一个是在Python源代码中提供import语句(以及扩展名为__import__()函数)的实现.这提供了可以移植到任何Python解释器的import的实现.这 ...