Kotlin 函数

https://try.kotlinlang.org这个可以运行Kotlin代码块

1 .在Kotlin中创建集合

val set= hashsetOf(1,5,6)

val list = arrayListOf(1,6,45);

val map = hashMapOf( 1 to "one",  5 to "five" ,53 to "fifty-three" )

Kotlin 中JavaClass 等价于 Java的getClass()

>>>printLn(list.javaClass)    ----->>> class java.util.Arraylist

Kotlin 中 可以获取一个列表的最后的元素list.last()和最大元素list.max()

2. Kotlin函数中可以显示地表明参数名称。 但是在Java的函数中不能采用命名参数。

kotlin中可以声明默认参数值的函数。

fun <T> joinToString( collection : Collection<T>, separator : String=" ,"  ,prefix : String = "", postfix : String = "") :String 

上面的就是有默认值得函数。调用这个函数可以省略掉部分参数 。但是没有申明参数调用只能省略末尾的参数,如果申明命名参数可以省略一些中间的一些参数

>>> jionToString(list,  ","  ,  " " , " ")

>>>jionToString(list)

3.Kotlin中可以把函数直接放到代码文件的顶层,不用从属于任何类。这些函数依然是包内成员,如果你要从外部访问它,则需要import。修改顶层函数的名称需要给这个文件添加@JvmName的注解

顶层属性:和函数一样,属性也可以放到文件的顶层。默认情况下顶层属性是通过服务器暴露给Java使用的(如果是val就只有一个getter,如果是var就对应一对getter和setter)

const 用法 : const等同于Java的public static final 

const val UNIX="\n" 等同于Java的 public static final String UNIX="\n"

4. 扩展函数和属性

扩展函数就是一个类的成员函数,不过定义在类的外面。你只要把扩展的类和接口的名称,放到即将添加的函数前面

fun String.lastChar() : Char = this.get(this.length-1)

扩展函数并不容许你打破他的封装性,和在类的内部定义方法不同的是,扩展函数不能访问私有或者是受保护的成员。

5.导入函数

自己定义的扩展函数,它不会自动地在整个项目范围内生效,如果要使用它需要导入。Kotlin 允许用和导入类一样的语法来导入这个函数

import string.lastChar

也可以用*

import string.*

可以使用关键字as来修改导入的类和函数名称

import strings.lastChar as last

val c="Kotlin".last()  这样就把lastChar改为last 方法

扩展函数不可重写。Kotlin中会把他们当做静态函数对待,扩展函数在Java中编译为静态函数。

如果一个类有相同的成员函数和扩展函数,成员函数会优先使用。在扩展API中,有相同的成员函数和扩展函数,会重新编译代码,这将指向新的成员函数。

6.Kotlin中字符串的处理

1> 和Java使用相同的正则表达式

2>kotlin的split扩展类可以指定多个分割符

3> Kotlin标准库有一些可以获取给定分割符的第一次(或最后一次)出现之前(或之后)的字符串的函数。

如:/Users/pyh/kotlin-book/chapter.adoc  可以使用 substringBeforeLast 和 substringAfterLast 函数将一个路径分割为目录、文件名、扩展名

4> 多行三重引号的字符串

一个三重引号的字符串可以包含换行,而不用专门的字符""" c:\Users\pyh\kotlin-book """

三重引号的字符串提供了一种简洁的方式,解决了原本在Java中需要进行大量啰嗦的转义和字符串链接的问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是在学习和使用kotlin时的一些总结与体会,一些代码示例来自于网络或Kotlin官方文档,持续更新... 对...
    竹尘居士阅读 3,359评论 0 8
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,305评论 9 118
  • 写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kot...
    胡奚冰阅读 701评论 0 4
  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 3,515评论 1 24
  • 体验:突然发现自己的不足,致命的不足,拿的起,却放不下!改正,不轻易拿起,放下,要干净利落,核心:不好高骛远,转身...
    郭家乐阅读 125评论 0 0