kotlin 记录(已弃坑)
kotlin
有些是转载内容
使用nullable值以及空值检测
引用或函数返回值如果可能为null值,则必须显式标记nullable。 (在类型后面跟一个问号表示这个对象可能为空,跟两个感叹号表示这个类型一定不为空)
- fun main(args: Array<String>) {
- if (args.size() < 2) {
- print("Two integers expected")
- return
- }
- val x = parseInt(args[0])
- val y = parseInt(args[1])
- //必须做判断,因为x或y有可能为空
- if (x != null && y != null) {
- // x 和 y 在已经检测不为null时,系统会自动将其转换为非空类型
- check print(x * y)
- }
- }
- /**
- * 如果str不能转为Int类型,则返回null
- */
- fun parseInt(str: String): Int? {
- // (代码略)
- }
in关键字的使用
如果一个数字是在某一个区间内,可以使用in关键字
- //打印y次OK
- if (x in 1..y-1)
- print("OK")
- //如果x不存在于array中,则输出Out
- if (x !in 0..array.lastIndex)
- print("Out")
- //打印1到5
- for (x in 1..5)
- print(x)
- //遍历集合(类似于Java中的for(String name : names))
- for (name in names)
- println(name)
- //如果names集合中包含text对象则打印yes
- if (text in names)
- print("yes")
when表达式
(类似于Java中的switch)
- fun cases(obj: Any) {
- when (obj) {
- 1 -> print("第一项")
- "hello" -> print("这个是字符串hello")
- is Long -> print("这是一个Long类型数据")
- !is String -> print("这不是String类型的数据")
- else -> print("else类似于Java中的default")
- }
- }
上诉内容转载至 https://blog.kymjs.com/code/2015/08/02/01/?utm_source=tuicool&utm_medium=referral
来聊聊 kotlin
怎么说呢?先说好的。
优点太多了,各种语法糖什么什么什么什么的,哔哩哔哩一大堆。
我最喜欢的 还是 var 和 val ,还有就是 类似 C#的匿名类。
最主要的是 后面有人! JetBrains公司主导,最近谷歌也在推 kotlin
缺点也比较明显,我觉得这个锅应该给 java 对javabean 的 定义太重了。 集合Spring boot 都有会有挺多问题的,更别说其他的框架了。
语法糖带来的必然问题就是 可读性。 java 虽然是啰嗦,但是你不能否定 可读性确实非常高。
还有就是 给我的感觉是 “非常迫切的想和java 这个语言区分开“”。 然后就会 避开 和 抛弃 一些 java 语言本身的一些优势,而没去兼容。或许有什么更深的意思吧,反正给我的感觉就是这样的。
国内环境还是不给力。使用人数太少了。
在我的定义中 kotlin 应该是在 java 语言太过保守,过于啰嗦 和 升级不给力等问题上,对 现有JAVA 语言进行升级的语言,而不是一个全新的语言。
最后说一句话,如果主流框架兼容无误一点事没有。我还是会果断转 kotlin !
kotlin 记录(已弃坑)的更多相关文章
- (暂时弃坑)(半成品)ACM数论之旅18---反演定理 第二回 Mobius反演(莫比乌斯反演)((づ ̄3 ̄)づ天才第一步,雀。。。。)
莫比乌斯反演也是反演定理的一种 既然我们已经学了二项式反演定理 那莫比乌斯反演定理与二项式反演定理一样,不求甚解,只求会用 莫比乌斯反演长下面这个样子(=・ω・=) d|n,表示n能够整除d,也就是d ...
- jzy3D从入门到弃坑_4尝试使用jzy3D1.0画图失败
jzy3D从入门到弃坑_4 尝试使用jzy3D1.0画图失败 觉得有用的话,欢迎一起讨论相互学习~Follow Me 记录一下使用jzy3D1.0失败 究其原因在于 本人才疏学浅,对于JAVA ope ...
- Docker之Docker Machine已弃用
作为刚开始学习docker的新手,从网上查询文档无疑是最快的学习捷径,但是这次在docker翻车了,困扰了整整三天,特记录一下. 一般我们使用docker for windows安装,一路往下点直至安 ...
- vSphere6提示已弃用VMFS卷的解决方法
Deprecated VMFS volume(s) found on the host. Please consider upgrading volume(s) to the latest versi ...
- 写个 Hello world - 前端从入坑到弃坑系列教程(1)
这是一个系列教程<前端从入坑到弃坑>的第一篇. HTML 是什么 说白了,HTML 就是网页的内容.比如你现在正在阅读的这个网页的内容,就是 HTML.如果你还不明白,请继续往下阅读. 写 ...
- C#标记 [已弃用] 的方法
[Obsolete]//标记该方法已弃用 /// <summary> /// 你应该调用本类的 OpenMessageBox 方法 /// </summary> public ...
- (暂时弃坑)ACM数论之旅15---置换群与Polya定理(我把标题看成poi了,poipoipoi(*≧▽≦)ツ)
(挖坑...) ////////////////////////////////////////////////// 暂时弃坑 开学了,有空再写....
- C# Obsolete(已弃用方法属性)
class Realization : Interface { /// <summary> /// 已弃用的方法,Obsolete第二个参数设置为true,调用此方法会产生警告并引起编译器 ...
- gulp-htmlone的BUG弃坑
之前用项目用gulp-htmlone做最后的js和css内联打包出现各种问题 这次居然遇到打包后的css斜杠变反斜杠的问题 如下:/src/common/images/i_banner.jpg会被改成 ...
随机推荐
- shell awk实战
一.文本处理 1.按行提取关键字频次(如取第5列) awk 'BEGIN{FS="|"} {a[$5]+=1;} END {for(i in a) print i ":& ...
- U盘安装CentOS7笔记
准备工具: 8G左右U盘; 最新版UltraISO; CentOS7光盘镜像; CentOS7的镜像文件可以在网易的开源镜像站或者阿里云的开源镜像站下载,地址分别是:http://mirrors.16 ...
- python学习笔记(十三)接口开发
一.开发接口的作用 1.mock接口,模拟一些接口,在别的接口没有开发好的时候,需要开发一些模拟接口进行调试和测试. 2.查看数据,比如,获取所有学员信息的接口,就不需要提供数据库的查看信息. 二.接 ...
- html table表格列数太多添加横向滚动条
HTML的table表格的列数如果太多或者某一列的内容太长,就会导致表格td的内容被挤压变形,对后台的使用体验非常不友好.比如下面的情况: 那么如何在表格列数较多的情况下添加横向滚动条?其实很简单,只 ...
- Git添加本地项目出现fatal: unable to get credential storage lock: File exists
把本地项目初始化之后上传到github上出现问题:fatal: unable to get credential storage lock: File exists 解决办法:是因为我上传用的git帐 ...
- py-统计一个矩阵中每一列的非0数的个数
1.文件类型类似于这样: 不过数据量比这个要更大一点. 2.对应上述数据的运行结果: import matplotlib.pyplot as plt with open('test.txt') as ...
- css图片上悬浮文字(丝带效果)实现
首先看效果 思路:1.去掉“丝带“菱角使用的是overflow: hidden; 2.通过z-index降低图片的优先级或者调高“丝带”优先级来实现覆盖效果(z-index需要写在有position的 ...
- 控制台应用程序中添加对MFC的支持
在windows控制台应用程序中,肯能会想使用一些MFC中的类,如CStringArray等,通过下面两步简单的设置可以添加对MFC的支持: 1.右击工程名 -> References 选择 A ...
- 长网址 短网址(http://www.zhihu.com/question/19852154?rf=21975802)
短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代 ...
- 接口API中的敏感数据基于AES进行安全加密后返回
许久没有写博客了,有些惶恐地打开这个再熟悉不过的编辑器. 场景:要对一个涉及到敏感数据(账号.密码)的接口进行加密后返回 由于之前没有相关的经验,所以先在网上搜罗了一阵,这篇博客不错https://w ...