传智播客旗下高端IT在线教育平台|咨询热线:010-56288220

返回顶部 返回列表
243 0

[Kotlin专区] kotlin精讲-第2章(2)函数和数据类型入门

[复制链接]

11

主题

17

帖子

103

积分

注册会员

我是大神

Rank: 2

积分
103
2430 我是大神 发表于 2017-12-22 19:19:21
主函数和打印输出函数main函数
一个Kotlin脚本文件里面的main函数,我们可以叫主函数,也可以叫做入口函数。一个Kotlin脚本文件里面如果包含了main函数,那么就会出现一个Kotlin图标,提示可运行。
如果我们把main改为main1,你会发现,Kotlin图标就没有了。

我们来解释下main函数:
fun函数标识
main函数名称
args形参
Array<String>形参类型
{println(“Hello World”)}函数主体

有基础的同学,是不是感觉少了一个什么呢?是的,没有找到方法返回类型修饰符。因为main函数没有返回值,所以可以省略返回类型修饰符。完整的写法,参考如下代码:
fun main(args: Array<String>):Unit {    println("Helloworld")}
这里有一个细节同学们发现了吗?是的,Kotlin的每一行代码的最后不用加上分。
【Kotlin相比于Java不用在语句后面加上分号】是不是减少了一些代码量呢(偷笑)。有的同学想,才一个分号,就谈上代码量的减少了(偷笑)。Kotlin站在Java之上,相比于Java,同样的功能,更少的代码量是必须的,后续还有很多地方,可以减少代码的编写。使用Kotlin,相比于Java代码量少了,大概算的上Kotlin优于Java 20%的理由(大笑)。
这里还有一个细节,同学们发现了吗?是的,Java里面的main函数,都是定义在一个具体的类里面。【Kotlin相比于Java,在Kotlin中,main方法不用放在一个类里面,可以独立存在】是不是挺有意思,关于函数,Kotlin还有很多特别之处,后面我们一一讲解。


println函数为什么掌握println函数的使用很重要?在Kotlin基础学习阶段,我们需要频繁使用屏幕输出,用来验证代码执行结果,所以我们先掌握println函数。
println的作用是什么?选中println,按住Ctrl,查看println源码Console.kt可以知道,println()就是输出内容到控制台,并且换行,官方因为注释如下。

/** Prints the givenmessage and newline to the standard output stream. */
查看Console.kt的Structure结构视图,可以得知println()函数接收的参数类型是很丰富的。【Kotlin相比于Java,println()函数可以直接打印数组,集合,这点比Java打印输出便捷一些。】



image.png

print函数
println()输出内容的时候带换行符,print()函数输入内容的时候不带换行符。参考如下代码:
fun main(args: Array<String>) {    println("黑马程序员")    print("为莘莘学子改变命运而讲课")    print(",")    print("为千万人少走弯路而著书!")}
运行结果:



image.png

数据类型入门任何语言都有自己的数据类型,Java语言里面的数据类型包含基本类型和引用类型。在Java里面存储数值、字符、布尔值可以使用基本数据类型也可以使用引用类型。
Kotlin则不区分基本类型和引用类型,统一都是引用类型。为了表示数值、字符、布尔值、数组、集合等,Kotlin帮我们定义了很多类型。我们也可以称帮我们定义好的这些类型为“内置类型”。
我们也可以把数值、字符、布尔值这些相对基础、简单的类型称为“基本内置类型”。把数组、集合此类相对复杂的类型称为“复杂内置类型”。
我们这里先介绍“基本内置类型”,“复杂内置类型”则放到后面章节去讲解。
“基本内置类型”我们通过一张表汇如下:


类型描述长度示例
Byte字节8位var a: Byte = 1
Short短整型16位var b: Short = 1
Int整型32位var c: Int = 1
Long长整型64位var d: Long = 1L
Float浮点型32位var e: Float = 1f
Double双精度浮点型64位var f: Double = 1.0

函数入门
什么是函数?函数就是具有特定功能的一段独立小程序,函数也称为方法。函数可以将功能代码进行封装,便于对该功能进行复用,提高了代码的复用性,函数只有被调用才会被执行。
Kotlin中函数的结构是怎样的呢?
函数有哪些类型呢?函数从参数角度,可以分为有参函数以及无参函数;从返回值角度,可以分为有返回值的函数以及没有返回值的函数。
那么函数一共就有4种类型,无参无返回值、无参有返回值、有参无返回值、有参有返回值。参考如下代码:
  1. <span class="hljs-comment">//无参无返回值</span>
  2. <span class="hljs-function">fun <span class="hljs-title">myFun1</span><span class="hljs-params">()</span> </span>{
  3.     println(<span class="hljs-string">"outerFun"</span>)
  4. }

  5. <span class="hljs-comment">//无参有返回值</span>
  6. <span class="hljs-function">fun <span class="hljs-title">myFun2</span><span class="hljs-params">()</span>: String </span>{
  7.     <span class="hljs-keyword">return</span><span class="hljs-string">"innerFun"</span>
  8. }

  9. <span class="hljs-comment">//有参无返回值</span>
  10. <span class="hljs-function">fun <span class="hljs-title">myFun3</span><span class="hljs-params">(content: String)</span> </span>{
  11.    println(content)
  12. }

  13. <span class="hljs-comment">//有参有返回值</span>
  14. <span class="hljs-function">fun <span class="hljs-title">myFun4</span><span class="hljs-params">(content: String)</span>: String </span>{
  15.     returncontent
  16. }
  17. 当然,没有返回值的函数,也可以明确指定返回值类型为Unit。
  18. <span class="hljs-comment">//无参无返回值</span>
  19. <span class="hljs-function">fun <span class="hljs-title">myFun1</span><span class="hljs-params">()</span>:Unit</span>{
  20.     println(<span class="hljs-string">"outerFun"</span>)
  21. }

  22. <span class="hljs-comment">//有参无返回值</span>
  23. <span class="hljs-function">fun <span class="hljs-title">myFun3</span><span class="hljs-params">(content: String)</span> :Unit </span>{
  24.     println(content)
  25. }
复制代码
当然,【 Kotlin相比于Java,在函数方面还有一些增强,比如命名参数,默认参数。】这些内容我们放到后面一些给大家讲解。
idea编辑技巧
当然,方法的输入也可以使用idea给我们定义好的模板









回复

您需要登录后才可以回帖 登录 | 立即注册