Kotlin入门学习
文章平均质量分 92
Kotlin 新语言 新安卓
慢羊羊的快发明
好好学习
展开
-
Kotlin====>组合挂起函数
Kotlin组合挂起函数分为默认顺序调用、使用 async 并发、惰性启动的 async、async 风格的函数、使用 async 的结构化并发、取消始终通过协程的层次结构来进行传递package groupimport kotlinx.coroutines.*import kotlin.system.measureTimeMillis/** * 使用协程进行并发总是显式的。 */suspend fun main() = runBlocking<Unit>{ prin原创 2020-11-13 15:39:17 · 295 阅读 · 0 评论 -
Kotlin协程====> 入门基础使用2
Kotlin 单元测试runBlocking { …… } 作为用来启动顶层主协程的适配器。 指定了其返回类型 Unit, Kotlin 中 main 函数必须返回 Unit 类型。import kotlinx.coroutines.runBlockingimport org.junit.Testclass MyTest { @Test fun test() = runBlocking<Unit> { // 这里我们可以使用任何喜欢的断言风格来使用挂原创 2020-11-12 16:47:59 · 195 阅读 · 0 评论 -
协程的取消与挂起
协程的基本取消package cancelimport kotlinx.coroutines.delayimport kotlinx.coroutines.launchimport kotlinx.coroutines.runBlocking/** * 一个用户也许关闭了一个启动了协程的界面, * 现在协程的执行结果已经不再被需要了,这时,它应该是可以被取消的 */fun main() = runBlocking { val job = launch { re原创 2020-11-06 17:50:35 · 405 阅读 · 0 评论 -
Kotlin======Block
Kotlin======Block定义block 是一个函数,类似一个方法block 是一个代码块block可以简化接口回调的步骤block 简化代码实现/** * Block 语法格式 * 块名:(参数:参数类型) -> 返回值类型 */fun main() { // 无入参,无返回值)简单回调 test1 { println("hello block") } // (无入参,有返回值)调用返回一个字符串 test原创 2020-11-05 10:02:10 · 2329 阅读 · 0 评论 -
Kotlin对象-修饰符
类的修饰Open、Override、final:package com.init.demo.modify/*** * 对象:修饰符 */open class ModifyPerson{ open var name:String ="" open var age:Int =0 var height:Double =0.0 var weight:Double...原创 2018-06-04 14:35:05 · 1083 阅读 · 0 评论 -
Kotlin对象: 方法和属性扩展
先定义一个类:package com.init.demo.extendclass Say{ fun sayHi() = println("Hi") fun sayBye() = println("Bye")}测试类:package com.init.demo.extendfun main(args: Array<String>) { val...原创 2018-06-05 11:14:36 · 2060 阅读 · 0 评论 -
Kotlin接口:方法
接口Advanced_Compution:package com.init.demo.`interface`interface Advanced_Compution{ //高级计算:乘方 up-立方 fun pow(up:Int)}接口Common_Compution:package com.init.demo.`interface`/** * Kotlin中 只允许...原创 2018-06-01 10:26:04 · 884 阅读 · 0 评论 -
Kotlin接口:属性
实例接口1:package com.init.demo.`interface`/** * 接口:属性抽象 */interface PersonInterface{ var name:String var age:Int var height:Double var weight:Double}实力接口实现类1:package com.init.demo....原创 2018-06-01 10:28:55 · 942 阅读 · 0 评论 -
Kotlin接口:方法名一致写法
接口Apple:package com.init.demo.`interface`interface Apple{ fun printSelf() fun give() = println("give you an Apple ")}接口Banana:package com.init.demo.`interface`interface Banana{ fun...原创 2018-06-01 10:31:17 · 1025 阅读 · 0 评论 -
Kotlin函数—定义和使用
代码:/** * 函数的定义 */fun main(args: Array<String>) { println(suare(3.5)) printVoid(3.56) val l = printTwo(10, 5) //val 赋值之后不在变 println(l) /* *vararg 可以传入可以以a的 int元组传入 ...原创 2018-05-24 10:45:01 · 803 阅读 · 0 评论 -
Kotlin对象:重写和重载
package com.init.demo.model/** * 对象:重写和重载 * 重写:是继承超类的方法重写操作,在不同类中 * 重载:是在同一个类中,多写n个(拥有不同参数和参数不同个数)的拥有方法 * 共性:方法名都相同 */open class DemoOverrideAndReWrite{ open fun printSign(content:String) ...原创 2018-05-31 16:49:31 · 1127 阅读 · 0 评论 -
Kotlin对象:抽象类
抽象类写法如下:/** * 对象:抽象类 * 能很好的使用它进行后期代码的解耦和维护 * 具体实现: * 在需要继承实现的类去赋值的属性前和实现的方法前面加上abstract修饰符,免去open */abstract class News{ var origin = "reporter" abstract var content:String abs...原创 2018-05-31 16:51:14 · 908 阅读 · 0 评论 -
Kotlin对象继承—主构造函数的初始化
package com.init.demo.modelopen class DemoPersonConstruction(name: String, age: Int, height: Int, likeFood: String, costByMonth: Int) { val name: String = name val age: Int = age val he...原创 2018-05-31 16:52:09 · 1069 阅读 · 0 评论 -
Kotlin对象继承—次构造函数的初始化
package com.init.demo.model/** * 对象继承—次构造函数的初始化 */open class DemoPersonConstruction1{ var name: String = "" var age: Int = 0 var height: Int = 0 var likeFood: String = "" va...原创 2018-05-31 16:53:15 · 1290 阅读 · 0 评论 -
Kotlin对象继承— 方法的覆盖
package com.init.demo.model/** * 对象继承— 方法的覆盖 */open class DemoPersonMethodOverride(name: String, age: Int, height: Int, likeFood: String, costByMonth: Int) { val name: String = name val ...原创 2018-05-31 16:54:01 · 889 阅读 · 0 评论 -
Kotlin对象继承:属性覆盖
package com.init.demo.model/** * 对象继承:属性覆盖 * 属性覆盖的语法和方法覆盖的语法非常类似 * 在超类的属性前面添加open修饰 * 在子类的属性前添加override */open class DemoVariableOverride { open var str: String = "a" open val str2: St...原创 2018-05-31 16:54:49 · 1162 阅读 · 0 评论 -
Kotlin对象继承—属性、函数方法的初始化
package com.init.demo.model/** * 对象继承—属性、函数方法的初始化 * 继承:要在被继承的类上加上open修饰符 * open 代表这个类可以被继承 * 这个类可以叫超类和父类 * 在继承他的类这些类的到后面加上冒号 把想要继承的类放在后面 * 在继承的时候调用的是这些超类的默认构造器 * 在括号中不需要添加任何构造参数,空的就行 * 这些继承他...原创 2018-05-31 16:55:27 · 767 阅读 · 0 评论 -
Kotlin集合—Map/MutableMap
Map:package com.init.demo.collectionfun main(args: Array<String>) { /** * Map的定义:mapof<key,value>(Pair(key,value),Pair(key,value),Pair(key,value),...) * <key,value> ...原创 2018-05-23 15:52:07 · 13559 阅读 · 0 评论 -
Kotlin集合—集合类型共性和操作
代码:package com.init.demo.collection/** * 集合类型Collection * Kotlin本身就提供了一组非常良好的原生集合类型接口,分为几下几种; * • Iterable:这是父类(class),意思是可迭代的、可被重复操作的(这里我们提前讲到类(class), * 你现在可以将类理解为函数与变量的组合, * ...原创 2018-05-24 10:25:58 · 1625 阅读 · 0 评论 -
Kotlin 对象初识2-函数作为对象属性,getter和setter的设置
函数作为对象属性://函数作为对象属性class NumberCompution(val num1:Int,val num2:Int ,var operator:(Int,Int)->Int){ fun operation(){ println("operation result:${operator(num1,num2)}") }}测试函数作为...原创 2018-05-22 15:11:32 · 659 阅读 · 0 评论 -
Kotlin-Lambda 表达式
package com.init.demo.testfun main(args: Array<String>) { /** * lambda 全程lambda表达式 没有函数名的函数 即匿名函数 * 即函数中的函数(内部函数),基于数学中的λ演算得名 * 也可以乘称作闭包 是指这个匿名函数内可以引用创建 * 这个匿名函数所属的变量...原创 2018-05-22 16:31:01 · 198 阅读 · 0 评论 -
Kotlin-高阶函数(成员函数和扩展函数)
高阶函数的使用:package com.init.demo.testfun main(args: Array<String>) { /** * 高阶函数是一个接受一个函数类型的函数 * 高阶函数是一个返回一个函数类型的值 */ val cc = arrayOf(1, 2, 3, 4, 5) val dd = cc.filter ...原创 2018-05-22 17:16:27 · 1182 阅读 · 0 评论 -
Kotlin集合—MutableList可变列表、Set、MuTableSet
MutableList可变列表:package com.init.demo.collectionfun main(args: Array<String>) { /** * MutableList可变列表 * 定义:MutableList<类型>或mutableListOf(元素1,元素2,....,元素n) * 可以改变自身大小的数...原创 2018-05-23 11:54:32 · 47498 阅读 · 1 评论 -
Kotlin对象初始1
fun main(args: Array<String>) { //创造实例,暨对象实例化 val friend = Friend()// val friend1 = Friend("name") //属性引用 对象变量名.属性 = 属性类性质赋值 //对象赋值采用引用方式 //friend 本身不可变 对象变量名.属性 可以变 ...原创 2018-05-22 14:15:31 · 1673 阅读 · 0 评论 -
Kotlin-HelloWord,常量,变量
fun main(args: Array<String>) { // fun function的缩写 代表函数的定义 类比数学 就好像定义了一个公式 //main 意思死主要 整个程序的入口 在这里代表主函数的入口 // args 指函数的参数(arguments) 带了s 说明不止一个参数 是复数形式 //Array<String> 代表S...原创 2018-05-09 10:41:34 · 197 阅读 · 0 评论 -
Kotlin 集合-- arrayOf
package com.init.demo.demo1fun main(args: Array<String>) { var nollStations = arrayOf("江北机场", "两路", "", "", "金童路", "重庆北站南广场", "龙头寺", "狮子坪", "红旗河沟"原创 2018-05-16 11:51:34 · 8142 阅读 · 0 评论 -
kotlin学习控制流:二元判断和for循环
/** * 控制流 二元判断和for循环 */fun main(args: Array<String>) { println("二元判断--判读输出:如果爱请深爱,不爱请离开") var love = true println(if (love) "请深爱" else " 请离开") println("kotlin 将if-else 视为一个表达式...原创 2018-05-08 14:15:26 · 1213 阅读 · 0 评论 -
kotlin控制流--while循环
/** * while循环 */fun main(args: Array<String>) { //初始运用while循环 var num = 1 var times = 0 var toal = 0 while (toal < 15050) { toal += num num += 1 ...原创 2018-05-08 14:40:13 · 690 阅读 · 0 评论 -
kotlin控制流--when语句
fun main(args: Array<String>) { val a = 5 val b = 10 val result = if (a > b) a - b else "小于" //a和b的大小决定了result的类型是String或者Int when (result) { in 1..5 -> { ...原创 2018-05-08 14:57:08 · 1405 阅读 · 0 评论 -
Kotlin基本类型1-整数型和类型推断
类型范围:kotlin类型名首字母是大写的 变量名是小写的 以示区分形式定义为: var 变量名 : 类型名 = 值Kotlin中用的最多的是Int类型名一般可以省去不写,这样形式就可以定义为:var 变量名 = 值eg:常量Long表示为: val a = 126666L常量Int表示为: val a = 1266常量Double表示为: val a = 1266.34常量Float表示为: ...原创 2018-05-09 11:19:26 · 2941 阅读 · 0 评论 -
Kotlin元组/可空类型 nullable
//元组 二元元祖:Pair 三元元组:Triple(最多一次容纳三个值)//Pair 不能放第三个值,也不能用.third; Triple也不能少放于三个值var subject = Triple(3, "学会", "kotlin")val fee = Pair("学费", 0)println("${subject.first}天${subject.second}${subject.th...原创 2018-05-09 13:52:06 · 1477 阅读 · 0 评论 -
Kotlin 基本类型和相关基础操作运算
fun main(args: Array<String>) { //一元操作符 正号“+” 符号“-” //一元操作符紧靠在被操作对象之前,不可有空格 var a = 3 a = -100 val b = +a var c = -a println("${b},${c}") //二元操作符指同时操作两个对象 v...原创 2018-05-11 10:14:45 · 714 阅读 · 0 评论 -
Kotlin - package和Import
package(包)可以将代码分配到各个命名空间内命名空间:例如 安徽 南通 香港 命名空间分层次:例如 重庆.渝中.两路口package com.init.demo.testclass Bookvar PI = 3.14var E = 2.178/** * kotlin学习 -字符串和字符 * 总体来说:跟java 字符的方法差不了多少 */fun main(args: Ar...原创 2018-05-11 10:42:40 · 279 阅读 · 0 评论 -
Kotlin 异常和类初始化
package com.init.demo.testimport java.io.Fileimport java.io.IOExceptionimport java.nio.file.Filesimport java.nio.file.Pathimport java.nio.file.Pathsimport java.util.*/** * 类初始化,kotlin 不再需要ne...原创 2018-05-11 11:15:17 · 649 阅读 · 0 评论 -
Kotlin引用比较和区间range
package com.init.demo.demo1import java.io.Filefun main(args: Array<String>) { //引用比较和结构比较 //检查两个引用是否引用相等,用===和!==操作符 comepareToCharecter() //区间 用“..”操作符表示,包含起始和边界的值 //用...原创 2018-05-11 11:58:08 · 947 阅读 · 0 评论 -
Kotlin 控制流作为表达式和When语句
package com.init.demo.demo1import java.io.IOExceptionimport java.nio.file.Filesimport java.nio.file.Pathimport java.nio.file.Paths//Kotlin中控制流作为表达式fun main(args: Array<String>) { /*...原创 2018-05-11 14:36:58 · 488 阅读 · 0 评论 -
Kotlin 函数返回、类型层次、循环
package com.init.demo.demo1fun main(args: Array<String>) { println(returnMethod(1.0,3.0)) println(maxNumber(1,3,4)) listLittleNine() /** * Kotlin最上层类型为Any。意为任意类型 * 定义...原创 2018-05-11 15:44:19 · 1417 阅读 · 0 评论