当前位置: 首页 > news >正文

笔记-Kotlin学习

1.Kotlin中都是对象类型,没有基础数据类型;如需强转toLong():Long形式(val num: Double = phone.toDouble());

2.Kotlin中不支持八进制;

3.Kotlin中的数字可以添加_,方便阅读(val phone:Long = 186_3333_0816);

4.Kotlin中添加了一种等号===,表示是否指的是一个对象(内存地址是否一样), ==表示数据结构是否相等;

5.Kotlin中String具有很好模板性质,通过$这个字符来处理("123$a", a:String = 9);

6.Kotlin中"""ssssss\n"""这种可以使\n得换行效果无效;

7.Kotlin中for..in一起使用;
{
val array = 100..1
for(array in value){
Log.e("FFF", "println $value")
}
}

..代表正序输出,前边的数字必须小于后边的数字,否则输出异常;
downTo 代表倒叙输出,前边的数字必须大于后边的数字,否则输出异常;
step 代表每次输出的间隔;
until代表[),..或者downTo代表[];
array.indexof(i)表示取出下表为i的数据

{
val array = 1..100
for(value in array step 2){
Log.e("FFF", "value is $value")
}
}

{
val array = 100 downTo 1
for(value in array step 2){
Log.e("FFF", "value is $value")
}
}

{
val array = 100 until 1
for(value in array step 2){
Log.e("FFF", "value is $value")
}
}

when代替switch(比switch更加灵活);
value与下边的筛选条件必须是同一类型,value是object类型就没有限制了,else是必须有的
{
when(value){
"22",1 -> "one"
listOf(1,2) -> "two"
else -> "ERROR"
}
}
while正常使用;

8.Kotlin集合(listOf, mapOf)
当集合没有标明是何种类型时,可以添加任何值(var list = listOf(1, "3", 444, false))

9.Kotlin(空安全)对象赋值的时候最好!=,取对象属性的时候最好?.这种对象为空不执行 , !!.这种当对象为空,会报空指针

10.lazy (延缓初始化)
val normal by lazy{
"dddddd"
}
注:lazy只能和val(常量)一起使用

11.Kotlin中的函数
fun sum(a:Int,b:Int):Int{
return a+b
}

fun sum(a:Int, b:Int) = a+b

val sum = {a:Int, b:Int -> a+b}

无返回值Unit或者不写

相关文章:

  • 【Unity Shader】五、Shader纹理映射,及纹理的缩放和偏移
  • img 样式单和属性
  • 统计学基于SPSS贾俊平 授课笔记 发布作业 spss19cn 软件下载地址及破解包spss19_10039 下载地址...
  • zabbix监控模板大全
  • 2017杭州云栖大会—移动云专场【赠票】
  • seaJS源码
  • apache 日志轮询三种方法
  • Django REST框架-基于类的视图
  • 玩转算法面试:(三)LeetCode数组类问题
  • TensorFlow 之 高层封装slim,tflearn,keras
  • NetScaler的部署实验之七NetScaler Gateway的配置以及StoreFront集成NetScaler Gateway的配置更改...
  • myEclipse 中看jar源代码
  • bootstrap创建登录注册页面
  • 排列组合问题
  • 旗舰店揭幕大疆无人机用阿里云全球直播
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • bootstrap创建登录注册页面
  • exports和module.exports
  • Flex布局到底解决了什么问题
  • JavaScript 一些 DOM 的知识点
  • js作用域和this的理解
  • mysql 5.6 原生Online DDL解析
  • React as a UI Runtime(五、列表)
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 开发基于以太坊智能合约的DApp
  • 前端面试题总结
  • 删除表内多余的重复数据
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 走向全栈之MongoDB的使用
  • Spring Batch JSON 支持
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (13)Hive调优——动态分区导致的小文件问题
  • (2)MFC+openGL单文档框架glFrame
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (安卓)跳转应用市场APP详情页的方式
  • (补)B+树一些思想
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (十)c52学习之旅-定时器实验
  • (转)fock函数详解
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • []FET-430SIM508 研究日志 11.3.31