前言:本教程最好在有JAVA的基础下进行学习

一、main函数的使用

(1) 学过java的小伙伴们应该知道,java的main方法是静态的,且写在class中。Kotlin就有所不同,一般的写法可以将main函数写在class外

class Test{}
/** 我是main入口函数 **/
fun main(args: Array<String>) {var test=Test();println("main在class外执行!")
}

运行结果:

(2) 当然也有将main函数写在class内的方法

(此段转载自:https://blog.csdn.net/qq_19306415/article/details/81902197)

class Test{companion object {/** 我是main入口函数 **/@JvmStaticfun main(args: Array<String>) {var test=Test();}}
}

解释:

companion object { //我是静态块
/**
这里面定义的静态变量跟静态方法,类似java的:static
**/
}

相当于java中的

public static void main(String[] args){
}

原文链接:https://blog.csdn.net/qq_19306415/article/details/81902197

二、普通函数

声明:使用fun关键词进行声明(function的缩写)

格式

fun method(param1 : Int , param2 : Int) : Int {return 0
}

PS:声明函数返回值类型,如果是Void可以不写(省略)

上述 method 指的是 方法名 , 参数一 与 参数二 指的是参数名,方法名 与 参数名 可以自己修改。如果不想接收任何参数,那么可以只写一对空括号。(这一点与java相同)

二、内置函数

定义 : 由Kotlin提供的一系列的内置函数

简单的一些内置函数:

如:Int max(Int num)

用法:(要导包: import kotlin.math.max)

fun largerNumber(num1 : Int , num2 : Int) : Int {return max(num1,num2)
}

还有一些复杂的内置函数,如

  • let函数
  • also函数
  • with函数
  • run函数
  • apply函数
  • ...

今天就不列举了,但是以上是偏Java的一种写法,Kotlin提供了一种更方便的语法格式:

(1) 当一个函数中只有一行代码时,Kotlin允许我们不必写函数体,可以将唯一的一行代码用 "=" 连接在尾部

fun largerNumber(num1 : Int , num2 : Int) : Int = max(num1 , num2)

但是,其实还可以再简化...

(2) 由于max()函数返回的是Int值,largerNumber()又在尾部使用了等于号,因此Kotlin可自动推导出largerNumber()函数的返回也必然是一个Int值,这样就不用显示的声明Int

fun largerNumber(num1 : Int , num2 : Int) = max(num1 , num2)

Kotlin小白,在学习郭霖老师的作品时做的笔记。若有错误之处欢迎指出!感谢阅读!

参考:

Kotlin如何在类里面创建main函数_新猿的博客-CSDN博客_kotlin main函数

《第一行代码 Android (第三版)》   ---郭霖

Kotlin入门笔记(二) Kotlin 函数的简单介绍相关推荐

  1. Kotlin教程(二)函数

    写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kotlin的同学.系列文章的知识点会以<Kotlin实战>这本书中顺序编写,在 ...

  2. MySql入门笔记二~悲催的用户

    这些是当年小弟的MySql学习笔记,木有多么复杂的结构操作,木有多炫丽的语句开发,木有...总之就是木有什么技术含量... 日复一日,彪悍的人生伴随着彪悍的健忘,运维操作为王,好记性不如烂笔头,山水有 ...

  3. python入门笔记——内置函数作业

    python入门笔记--内置函数作业 # 求三组连续自然数的和:求出1到10,20到30,35到45的三个和 sum1 = sum(range(1,11)) sum2 = sum(range(20,3 ...

  4. python爬虫入门教程(二):开始一个简单的爬虫

    2019/10/28更新 使用Python3,而不再是Python2 转载请注明出处:https://blog.csdn.net/aaronjny/article/details/77945329 爬 ...

  5. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

  6. python学习笔记(一)Python 简单介绍

    Python学习笔记(一)Python 简单介绍 Python介绍 Python简介 Python应用领域 Python是解释型的语⾔ 编译和解释的区别是什么? 编译型vs解释型 编译型 解释型 Py ...

  7. 2021年大数据ELK(二):Elasticsearch简单介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.Elasticsearch简介 1.介绍 2.创始人 二.E ...

  8. kotlin学习笔记——内联函数

    在Kotlin中,使用inline修饰符标记内联函数. 与普通函数不同,内联函数在编译时被替换掉,不是真正的函数调用. 如kotlin提供的with函数,如下: @kotlin.internal.In ...

  9. kotlin入门笔记

    为什么使用Kotlin 网上关于kotlin的讨论已经热了一个多月了,究竟怎么看待这门语言在Android开发中的应用前景,我觉得还是要留给时间去验证."我思故我在",自己的思考在 ...

  10. Kotlin入门(1)搭建Kotlin开发环境

    Kotlin做为一门编程语言,已经出现好几年了,但此前在国内并不闻名.自从5月份谷歌宣布它成为Android的官方开发语言之后,Kotlin猛然窜红了,虽说短期内Kotlin无法取代Java,但对于一 ...

最新文章

  1. 思科、华为交换机的一些命令
  2. ./include/caffe/util/cudnn.hpp: error: too few arguments to function ‘SetPooling2dDescriptor
  3. 工业以太网交换机:核心优点解析
  4. 原来记录系统日志那么简单【Java】【SpringBoot】【Mybatis Plus】【AspcetJ】
  5. v-for能倒序遍历吗_神级遍历——morris
  6. python内存池机制,python基础—12python内存管理机制
  7. GdiPlus[40]: 不该忽略的一些基础结构
  8. Ember项目引入js依赖
  9. android 分割数字图片,Android开发自定义View实现数字与图片无缝切换的2048
  10. Win11麦克风有回音怎么消除 Win11麦克风回声怎么调
  11. mysql按升序创建索引_MySQL 降序索引 (Descending Indexes)
  12. Oracle数据库将数字金额转换为大写汉字
  13. xp 无法关闭计算机,xp系统关机时一直显示正在关机状态却无法关键的解决方法...
  14. Logic Pro X中文汉化版
  15. Adobe Reader 离线安装包下载 大全
  16. nodejs将图片的像素值提取出来将RGBA转换成16位彩色
  17. linux 系统下开源软件 ngspice 仿真实例,调侃Spice历史和GNU/Linux下做Spice电路仿真...
  18. 删除多余迅雷7插件,加快启动速度
  19. 【独立版】帮扶极速版任务系统V3.1.3,八戒帮扶V5独立版
  20. 微信小程序开发选取相册照片/拍照API调用

热门文章

  1. jQuery封装的表单验证,模仿网易或者腾讯登录的风格
  2. 局域网关机助手 v1.0.bat 批处理
  3. android 8.0如何编译,ubuntu16.0编译Android 8.0 Android O记录
  4. 设计*** 得到远程主机的注册表
  5. 对拷的硬盘无法修改计算机名,如何实现硬盘对拷?两台电脑硬盘对拷资料详细图解(非GHOST式)(2)...
  6. 就业协议和劳动合同是一回事吗?
  7. 已知日程表软件用户手册
  8. 周鸿祎眼中的产品经理
  9. spring boot工作计划管理软件 毕业设计-附源码181638
  10. 电脑无法解析个别域名(如:无法访问MDN)