#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. CF633C Spy Syndrome 2

    嘟嘟嘟 题面:把一句话加密:1.所有字母变成小写.2.翻转所有单词.3.去掉空格.然后给你一句加密后的字符串以及一些出现在原句和没有出现在原句的单词,让你还原原句.注意,每一个单词可以使用多次,如果有 ...

  2. POJ 1088 滑雪 【记忆化搜索经典】

    题目链接:http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:  ...

  3. Android学习笔记_1_拨打电话

    1.首先需要在AndroidManifest.xml文件中加入拨打电话的权限,对应的配置文件: <?xml version="1.0" encoding="utf- ...

  4. Centos安装VMware

    转载:http://www.mamicode.com/info-detail-2171464.html

  5. iOS | XIB简单应用和注意点

    2018开篇第一篇文章,本文分享一点关于XIB的小知识,对于iOS开发新人来说或许有用. XIB 是 Interface Builder 的图形界面设计文档. 从Xcode 3.0 开始,苹果提供Xi ...

  6. flask笔记(三)Flask 添加登陆验证装饰器报错,及解析

    Flask 添加登陆验证装饰器报错,及解析 写这个之前,是想到一个需求,这个是关于之前写Flask笔记(二)中的一个知识点,路由相关 需求为 : 有一些页面必须是登陆之后才能访问的,比如Shoppin ...

  7. Laravel 集合的处理

    其中的方法有: $arrs = collect($arr)->collapse()->collapse() //去除最外一层数组,不论最外层数组时否有值,都会去除掉 collect($ar ...

  8. 构建高可靠hadoop集群之2-机栈

    本文主要参考 http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/RackAwareness.html had ...

  9. JS高级. 04 增删改查面向对象版歌曲管理、递归、

    增 数组.push() 删 数组.splice(开始删除索引,删除几个) 在当前对象中调用当前对象的方法中和属性,必须用this调用 nodeType判断节点类型 节点.nodeType ==  1: ...

  10. php 移动或重命名文件(图片)到另一目录下的方法有多种,这里只列出三种:

    php 移动或重命名文件(图片)到另一目录下的方法有多种,这里只列出三种:       方法一:使用copy函数   格式:copy(source,destination)   将文件从 source ...