kotlin demo

void->unit

// ,/* */

if (a > b) a else b

当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ? 来标识该引用可为空。安全调用操作符,写作 ?.如果 b 非空,就返回 b.length,否则返回 null。链式调用:如果任意一个属性(环节)为空,这个链式调用就会返回 null。 安全调用也可以出现在赋值的左侧。这样,如果调用链中的任何一个接收者为空都会跳过赋值,而右侧的表达式根本不会求值。item?.let { println(it) } // 输出 Kotlin 并忽略 null。?:。请注意,因为 throw 和 return 在 Kotlin 中都是表达式,所以它们也可以用在 elvis 操作符右侧。eg:val name = node.getName() ?: throw IllegalArgumentException("name expected")。

println换行打印

when (x) {

1 -> print("x == 1")

2 -> print("x == 2")

else -> { // 注意这个块

print("x is neither 1 nor 2")

}

}

when (x) {

in 1..10 -> print("x is in the range")

in validNumbers -> print("x is valid")

!in 10..20 -> print("x is outside the range")

else -> print("none of the above")

}

fun hasPrefix(x: Any) = when(x) {

is String -> x.startsWith("prefix")

else -> false

}

关于Iterator主要有三个方法:hasNext()、next()、remove() hasNext:没有指针下移操作,只是判断是否存在下一个元素 next:指针下移,返回该指针所指向的元素 remove:删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素

eg:Iterator  iterator = keySet.iterator();
        
        while (iterator.hasNext()) {
            String  key = (String) iterator.next();
            System.out.println(key);
        }

如需在数字区间上迭代,请使用区间表达式:

for (i in 1..3) {

println(i)

}

for (i in 6 downTo 0 step 2) {

println(i)

}

对区间或者数组的 for 循环会被编译为并不创建迭代器的基于索引的循环。

如果你想要通过索引遍历一个数组或者一个 list,你可以这么做:

for (i in array.indices) {

println(array[i])

}

或者你可以用库函数 withIndex:

for ((index, value) in array.withIndex()) {

println("the element at $index is $value")

}

the element at 0 is a the element at 1 is b the element at 2 is c

return@a 1意为“返回 1 到 @a”,而不是“返回一个标签标注的表达式 (@a 1)”

或者,我们用一个匿名函数替代 lambda 表达式, 匿名函数内部的 return 语句将从该匿名函数自身返回

fun foo() {

val ints = arrayOf(1, 2, 3, 4, 5, 6)

ints.forEach(fun(value: Int) {

if (value == 0) return

print(value)

})}

类型名Array<String>

表达式与语句的区别:语句是可以单独执行的、能够产生实际效果的代码;而表达式则是包含在语句中,根据某种条件计算出一个值或得出某种结果,然后由语句去判断和处理的代码。

如果不打算传入值参,可以预先给参数指定默认值。fun fix(name: String,age: Int = 2){}.如果使用命名值参,就可以不管值参的顺序。eg:fix(age=4,name=”jack”)

内联类:不能传递内联类的实参替代函数中基础类型的形参,不能传递基础类型的实参替代函数中内联类类型的形参

泛型类:T是类型占位符

泛型与可变参数结合:

class MagicBox<T:Human>(vararg item:  T){

private var subject:Array<out T>=item

xx

}

扩展函数:接触不到也继承不了类的情况下可以给他增加功能。具体就是在函数名前面加一个”类名.”就行了

泛型扩展函数:在函数名前面加一个”<T>T.”就行了.

扩展属性:在变量名前加一个”类名.”并且要给这个属性设定get()=xxx

可空类型扩展函数:fun String?.printWithDefault(default: String)=print(this ?: default)

/*SDK诠释

SDK是一系列程序接口,文档,开发工具的集合。sdk即单单不是一个开发工具,也不是一个程序。一个完整的SDK应该包括以下内容:

(1)接口文件和库文件

接口文件和库文件就是API,将底层的代码进行封装保护,提供给用户一个调用底层代码的接口;

(2)帮助文档

帮助文档解释接口文件和库文件功能,以及介绍相关的开发工具,操作示例等等;

(3)开发示例

开发示例就是做出来的一个DEMO展示,也要包括源代码;

(4)实用工具。

实用工具是用来协助用户进行二次开发的工具,比如二次开发向导、API 搜索工具、软件打包工具等。*/

infix

kotlin demo相关推荐

  1. 从零开始撸一个Kotlin Demo

    ####前言 自从google将kotlin作为亲儿子后就想用它撸一管app玩玩,由于工作原因一直没时间下手,直到项目上线后才有了空余时间,期间又由于各种各样烦人的事断了一个月,现在终于开发完成 项目 ...

  2. Android 渐变的‘TabLayout’ , (含免费( java / kotlin) Demo)

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ⚠️ : 本篇'由简入奢',全是干货! 本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 绘制文字与BaseLin ...

  3. SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos

    SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...

  4. Kotlin项目实践指南(上)

    关于作者 郭孝星,程序员,吉他手,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至guoxiaoxingse@163.com与我交流 ...

  5. Kotlin 资源大全

    官网及文档 Kotlin 官网 Kotlin 文档 Kotlin 中文文档 Kotlin on GitHub 中文社区 掘金技术社区 教程 & 文章 视频教程 Kotlin 系列视频教程 开始 ...

  6. 现学现用Android Jetpack - Navigation

    前言 即学即用Android Jetpack系列Blog的目的是通过学习Android Jetpack完成一个简单的Demo,本文是即学即用Android Jetpack系列Blog的第一篇. 记得去 ...

  7. Android Context使用详解

    一.Context概述 1.Context是一个抽象类,其通用实现在ContextImpl类中.它的主要作用是一个访问application环境全局信息的接口,包括为Activities, Fragm ...

  8. Gson直接将json转list示例 (TypeToken)以及通过内联函数结合reified简化代码

    为了演示,我们新建一个简单的数据类Person 数据类Person data class Person(var name: String = "", var age: Int = ...

  9. Android Jetpack从入门到精通(深度好文,值得收藏)

    前言 即学即用Android Jetpack系列Blog的目的是通过学习Android Jetpack完成一个简单的Demo,本文是即学即用Android Jetpack系列Blog的第一篇. 记得去 ...

最新文章

  1. Android Intent解析
  2. redis实践及思考
  3. 【oracle】关于处理小数点位数的几个oracle函数
  4. 5.11 加权Gram-Schmidt 分解
  5. html制作卡通图案代码,CSS画的卡通动画图案
  6. 【ASP.NET Core】处理异常(下篇)
  7. python 调用 c 模块
  8. 如何删除MySQL服务
  9. 安装SQL Server2012报Microsoft.NET Framework4无法安装错误解决方案
  10. C语言自学笔记(10)
  11. 计算机专业本科生必学课程
  12. 永久代,方法区 和 元空间之间的关系
  13. 7-10 愿天下有情人都是失散多年的兄妹 (25分)
  14. html容器自定义宽高比,容器长宽比_aspect-ratio, 宽高比, 会员专栏 教程_W3cplus
  15. Springboot面试杀手锏-自动配置原理
  16. 初步研究iphone充电方案及充电协议(一)
  17. 8-详解前缀树贪心算法N皇后问题
  18. CE是什么缩写,是什么含义
  19. 蒲公英 · 积跬步以至千里
  20. java计算方法所耗费的时间

热门文章

  1. 随记(17)场景AOI、游戏场景
  2. 11月第1周业务风控关注|抖音算法滋生群控系统:百部手机人工刷 1万播放量仅7毛
  3. python执行sql查询脚本并填写到excel_用Python执行SQL、Excel常见任务?10个方法全搞定!...
  4. python 继承(史上最详细版本)
  5. 安装opencv和python版本有关吗_python安装opencv_python安装opencv完要安装什么配套吗...
  6. idea中使用Thymeleaf语法编写代码不提示解决方法
  7. 信息收集--域内信息收集
  8. 任我行/管家婆 导入EXCEL ACCESS数据
  9. 在Office2003版本下安装O2007Cnv.exe来打开Docx、xlsb、xlsx文件!
  10. mysql中整形长度_mysql 整形的长度问题