kotlin
曾经小小少年
这个人很懒,什么都没留下
展开
-
kotlin入门-类定义
/** * 定义一个足球运动员,构造参数:姓名,国家,俱乐部 */class Footballer(var name: String, var country: String, var club: String) { fun offside() { println("${name}越位了") } fun shoot() { prin...原创 2018-05-17 07:36:12 · 146 阅读 · 0 评论 -
kotlin入门-object(单例)
class Skills(var skillname: String) { val skillsName: String = skillname}/** * 定义一个运动员接口 */interface Athlete { //训练 fun training(skills: Skills)}/** * 定一个足球运动员接口 */interface So...原创 2018-06-06 07:31:12 · 715 阅读 · 0 评论 -
kotlin入门-高阶函数(map,flatMap,reduce,fold)
使用map函数对集合进行操作fun main(args: Array<String>) { val list:Array<Int> = arrayOf(1,2,3,4,5,6,7,8) val newList = list.map { it*5+10 } val doubleList = list.map(Int::toD...原创 2018-06-21 07:14:26 · 12843 阅读 · 0 评论 -
kotlin入门-继承1
/** * 定义运动员的一个抽象类,他们都有一个竞技技能 * 一个类想要被继承 需要open 一个方法想要被覆写也需要open */abstract class Athletes(open val club: String) { open fun sports() { }}/** * 定义一个足球运动员继承运动员 */class footballer(club...原创 2018-05-31 07:34:49 · 121 阅读 · 0 评论 -
kotlin-伴生对象与静态成员
1.每个类可以对应一个伴生对象2.半生对象的成员全局独一份--------------------------------------------kotlin代码-----------------------------------------------------------------------fun main(args: Array<String>) { InterC...原创 2018-06-07 07:08:11 · 185 阅读 · 0 评论 -
kotlin入门-数据类
1.实现javabean功能2.自动构建类的toSting,copy等方法/** * 创建一个俱乐部的数据类 该俱乐部有名称和注册球员数量两个属性 * Pojos用来构建无参构造函数,并且实现get和set的 */@Pojosdata class Club(val name: String, val footballers: Int)fun main(args: Array<S...原创 2018-06-14 07:56:45 · 298 阅读 · 0 评论 -
kotlin入门-高阶函数(filter,takeWhile,let,with,use)
fun main(args: Array<String>) { val arrays = (0..10) var arrays1 = (2..8) /** * 获得基数 */ arrays.filter { it % 2 == 1 }.forEach(::println) /** * takeWhile只获取满足条...原创 2018-06-22 07:34:48 · 2627 阅读 · 0 评论 -
kotlin入门-内部类
1.定义在类内部的类2.与类成员有相似的访问控制3.默认是静态内部类,非静态用inner关键字4.内部类调用外部成员使用this@外部成员类名.成员变量名class Outside { var a: Int = 100 /** * inner非静态内部类 */ inner class Inside { val a: Int = 50...原创 2018-06-15 07:17:49 · 213 阅读 · 0 评论 -
kotlin入门-函数重载和默认函数
--------------------------------------------kotlin代码--------------------------------------------------------------------class MethodOverload { /** * JvmOverloads方法重载 java调用 */ @JvmO...原创 2018-06-09 06:57:25 · 519 阅读 · 0 评论 -
kotlin入门-尾递归优化(tailrec)
1.递归的一种特殊形式2.调用自身后无其他操作3.tailrec关键字提示编译器尾递归优化data class ListNode(val value: Int, var next: ListNode?=null)/** * 查找头结点,每个节点都有一个value 如果查到就返回,查不到就是NULL */tailrec fun findListNode(head: ListNode?, v...原创 2018-06-25 07:12:14 · 722 阅读 · 0 评论 -
kotlin入门-枚举
1.实例可数的类(枚举也是类)2.可以修改构造,添加成员3.可以提升代码的表现力,也有一定的性能开销enum class Rediskey { ROLEKEY, USERKEY, DATAKEY; /** * 获得实例的名称 */ fun getKey(): String { return "$name" } /**...原创 2018-06-19 06:15:46 · 192 阅读 · 0 评论 -
kotlin入门-闭包
1.函数运行的环境2.持有函数运行状态3.函数内部可以定义函数4.函数内部也可以定义类fun funfun(): () -> Unit { var count = 0 return fun() { println(count++) }}fun add(x: Int): (Int) -> Int { return fun(y: Int...原创 2018-06-26 07:17:36 · 595 阅读 · 0 评论 -
kotlin入门-密封类
1.子类可数2.子类只需要和密封类在同一个文件中/** * 定义一个xshell的密封类 */sealed class XshellCmd{ class Execute(val cmd:String,val cron:String):XshellCmd() class Restart(val cmd:String):XshellCmd() object Stop...原创 2018-06-20 06:37:25 · 241 阅读 · 0 评论 -
kotlin入门-柯里化函数调用链
1.多元函数变换成一元函数调用链fun log(tag: String) = fun(target: OutputStream) = fun(message: Any) = target.write("$tag-$message\n".toByteArray())fun log1(tag:String,target:OutputStream,message: Any){ target....原创 2018-06-27 07:35:49 · 800 阅读 · 1 评论 -
kotlin入门-高阶函数
fun main(args: Array<String>) { val arrays: Array<String> = arrayOf("hello", "world", "cup", "", "gogogo") /** * 包级函数 */ arrays.forEach(::println) /**原创 2018-06-20 17:03:13 · 156 阅读 · 0 评论 -
kotlin入门-偏函数
1.传入部分参数得到新函数val twly = fun(guide: String, name: String): String { return "$guide,我系$name"}fun <P1, P2, R> Function2<P1, P2, R>.partial(p1: P1) = fun(p2: P2) = this(p1, p2)fun mai...原创 2018-06-28 07:12:25 · 343 阅读 · 0 评论 -
kotlin入门-属性代理
** * 属性代理 */class Agentby { /** * 第一次访问name的时候才会初始化name * by实现了get方法 */ val name by lazy { "默认名称" } val agentName by Agent() /** * 需要get和set方法 */ var ...原创 2018-06-13 07:15:16 · 173 阅读 · 0 评论 -
kotlin入门-面向对象的基本概念
1.本质上就是解决如何使用程序描述世界的问题2.讨论如何把实际存在的东西抽象成程序的类和对象3.一种程序设计的思路、思想、方法/** * 定义一个接口 可以传入任何事件 */interface InputDevice { fun input(event: Any)}/** * 定一个Usb设备继承InputDevice */interface UsbDevice : In...转载 2018-05-30 07:43:37 · 130 阅读 · 0 评论 -
kotlin入门-range
/** * 定义一个0到10的闭区间 [0,10] */val x:IntRange = 0..10/** * 定义一个0到10的半开区间 [0,10) */var y:IntRange = 0 until 10/** * 定义一个空区间 */var z:IntRange = 0..-1fun main(args: Array<String>) { ...原创 2018-05-11 07:03:00 · 164 阅读 · 0 评论 -
kotlin入门-类与对象
1.所有的类都是继承自Any2.子类拥有父类的多有特性3.子类也可以定义自己的特征/**定义一个类 open:该类可被继承*/open class Person(name:String,age:Int){ init { println("大家好,我是一个${this.javaClass.simpleName},我的名字叫$name,我今年$age"+"岁了。") ...原创 2018-05-05 07:46:58 · 119 阅读 · 0 评论 -
kotlin入门-运算符
class Operation(var a: Int, var b: Int) { /** * 函数重载,定义加法 */ operator fun plus(c: Operation): Operation { return Operation(a + c.a, b + c.b) } override fun toString(...原创 2018-05-18 07:11:10 · 269 阅读 · 0 评论 -
kotlin入门-数组
//定义一个整型数组val intArray: IntArray = intArrayOf(0, 1, 2, 3, 4, 5)//定义一个char数组val charArray: CharArray = charArrayOf('L', 'O', 'V', 'E')//定义一个字符型数组val stringArray: Array<String> = arrayOf("厉...原创 2018-05-12 08:10:11 · 357 阅读 · 0 评论 -
kotlin入门-常量与变量
/** * 这是一个静态常量,不能赋值,并且是运行期常量 */val FINAL_PRAY: String = "汶川10周年不能忘记"/** * 这是一个静态常量,不能赋值,并且是编译期常量,可以提高编译器效率 */const val FINAL_PRAY_WC:String= "汶川雄起"/** *var 代表定义一个变量 */var pray: String = "...原创 2018-05-13 09:29:09 · 181 阅读 · 0 评论 -
kotlin入门-空类型处理
/** * 这种写法是错误的,因为kotlin不允许返回为null 除非手动设置 */fun getUserName1():String { return null}/** * 返回null的正确写法 */fun getUserName2():String?{ return null}/** * 返回null的正确写法 */fun getUserName2...原创 2018-05-07 07:31:02 · 167 阅读 · 0 评论 -
kotlin入门-函数
/** * main返回的是Unit类似java的void */fun main(args: Array<String>): Unit { //字符串转int var x = args[0].toInt() var y = args[1].toInt() println("$x+$y=${sum(x, y)}") println("$x+...原创 2018-05-14 07:29:35 · 113 阅读 · 0 评论 -
kotlin入门-表达式
中缀表达式-只有一个参数,且用 infix修饰的函数原创 2018-05-21 07:45:57 · 165 阅读 · 0 评论 -
kotlin入门-lambda
/** * main返回的是Unit类似java的void */fun main(args: Array<String>): Unit { //字符串转int var x = args[0].toInt() var y = args[1].toInt() println("$x+$y=${sum(x, y)}") println("$x+...原创 2018-05-15 07:11:36 · 184 阅读 · 0 评论 -
kotlin入门-一个简单的加减乘除计算器例子
fun main(args: Array<String>) { loop@ while (true) { println("=======输入计数表达式==========") //进行表达式输入 var _input = readLine() try { //得到表达式的计算结果 ...原创 2018-05-25 15:10:14 · 5913 阅读 · 1 评论 -
kotlin入门-循环语句
fun main(args: Array<String>) { for (arg in args) { print(arg) } print("|") for ((index, value) in args.withIndex()) { print("${index}->${value}") } ...原创 2018-05-23 06:45:30 · 180 阅读 · 0 评论 -
kotlin入门-异常处理
1.先看这样一个例子,这个是数据越界异常,所以需要进行异常捕获处理fun main(args: Array<String>) { var arg1 = args[0] println(arg1)}Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at com.bigen.tes...原创 2018-05-23 07:08:39 · 1345 阅读 · 0 评论 -
kotlin入门-继承2(多接口,抽象类调用同个方法)
interface A { fun x(): Int = 1}interface B { fun x(): Int = 0}abstract class D { open fun x(): Int = 5}class C(var y: Int = 0) : A, B, D() { override fun x(): Int { if...原创 2018-06-04 07:34:08 · 397 阅读 · 0 评论 -
kotlin入门-具名参数,变长参数,默认参数
fun main(args: Array<String>) { println(add(y = 2, x = 1)) wordcup("俄罗斯", "中国", counts = 2) var arrs = arrayOf("巴西", "德国") //*数组只能用在变长参数中 wordcup(*arrs, counts = 2) euro...原创 2018-05-24 07:19:26 · 341 阅读 · 0 评论 -
kotlin入门-扩展
1.为现有类添加方法和属性2.对现有类添加属性的时候不能直接赋值--------------------------------------------kotlin代码-------------------------------------------------------------------/** * 扩展String的方法 */fun String.multi(int: Int)...原创 2018-06-11 16:47:28 · 167 阅读 · 0 评论 -
kotlin入门-统计某个字符串单个字符出现的次数
fun main(args: Array<String>) { val map = HashMap<Char,Int>() /** * toChaarArray将字符串转化为字符数组 * */ File("build.gradle").readText().toCharArray().filterNot(Char::is...原创 2018-06-29 07:19:36 · 1697 阅读 · 2 评论