kotlin demo
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相关推荐
- 从零开始撸一个Kotlin Demo
####前言 自从google将kotlin作为亲儿子后就想用它撸一管app玩玩,由于工作原因一直没时间下手,直到项目上线后才有了空余时间,期间又由于各种各样烦人的事断了一个月,现在终于开发完成 项目 ...
- Android 渐变的‘TabLayout’ , (含免费( java / kotlin) Demo)
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ⚠️ : 本篇'由简入奢',全是干货! 本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 绘制文字与BaseLin ...
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- Kotlin项目实践指南(上)
关于作者 郭孝星,程序员,吉他手,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至guoxiaoxingse@163.com与我交流 ...
- Kotlin 资源大全
官网及文档 Kotlin 官网 Kotlin 文档 Kotlin 中文文档 Kotlin on GitHub 中文社区 掘金技术社区 教程 & 文章 视频教程 Kotlin 系列视频教程 开始 ...
- 现学现用Android Jetpack - Navigation
前言 即学即用Android Jetpack系列Blog的目的是通过学习Android Jetpack完成一个简单的Demo,本文是即学即用Android Jetpack系列Blog的第一篇. 记得去 ...
- Android Context使用详解
一.Context概述 1.Context是一个抽象类,其通用实现在ContextImpl类中.它的主要作用是一个访问application环境全局信息的接口,包括为Activities, Fragm ...
- Gson直接将json转list示例 (TypeToken)以及通过内联函数结合reified简化代码
为了演示,我们新建一个简单的数据类Person 数据类Person data class Person(var name: String = "", var age: Int = ...
- Android Jetpack从入门到精通(深度好文,值得收藏)
前言 即学即用Android Jetpack系列Blog的目的是通过学习Android Jetpack完成一个简单的Demo,本文是即学即用Android Jetpack系列Blog的第一篇. 记得去 ...
最新文章
- Android Intent解析
- redis实践及思考
- 【oracle】关于处理小数点位数的几个oracle函数
- 5.11 加权Gram-Schmidt 分解
- html制作卡通图案代码,CSS画的卡通动画图案
- 【ASP.NET Core】处理异常(下篇)
- python 调用 c 模块
- 如何删除MySQL服务
- 安装SQL Server2012报Microsoft.NET Framework4无法安装错误解决方案
- C语言自学笔记(10)
- 计算机专业本科生必学课程
- 永久代,方法区 和 元空间之间的关系
- 7-10 愿天下有情人都是失散多年的兄妹 (25分)
- html容器自定义宽高比,容器长宽比_aspect-ratio, 宽高比, 会员专栏 教程_W3cplus
- Springboot面试杀手锏-自动配置原理
- 初步研究iphone充电方案及充电协议(一)
- 8-详解前缀树贪心算法N皇后问题
- CE是什么缩写,是什么含义
- 蒲公英 · 积跬步以至千里
- java计算方法所耗费的时间
热门文章
- 随记(17)场景AOI、游戏场景
- 11月第1周业务风控关注|抖音算法滋生群控系统:百部手机人工刷 1万播放量仅7毛
- python执行sql查询脚本并填写到excel_用Python执行SQL、Excel常见任务?10个方法全搞定!...
- python 继承(史上最详细版本)
- 安装opencv和python版本有关吗_python安装opencv_python安装opencv完要安装什么配套吗...
- idea中使用Thymeleaf语法编写代码不提示解决方法
- 信息收集--域内信息收集
- 任我行/管家婆 导入EXCEL ACCESS数据
- 在Office2003版本下安装O2007Cnv.exe来打开Docx、xlsb、xlsx文件!
- mysql中整形长度_mysql 整形的长度问题