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 记录(已弃坑)的更多相关文章

  1. (暂时弃坑)(半成品)ACM数论之旅18---反演定理 第二回 Mobius反演(莫比乌斯反演)((づ ̄3 ̄)づ天才第一步,雀。。。。)

    莫比乌斯反演也是反演定理的一种 既然我们已经学了二项式反演定理 那莫比乌斯反演定理与二项式反演定理一样,不求甚解,只求会用 莫比乌斯反演长下面这个样子(=・ω・=) d|n,表示n能够整除d,也就是d ...

  2. jzy3D从入门到弃坑_4尝试使用jzy3D1.0画图失败

    jzy3D从入门到弃坑_4 尝试使用jzy3D1.0画图失败 觉得有用的话,欢迎一起讨论相互学习~Follow Me 记录一下使用jzy3D1.0失败 究其原因在于 本人才疏学浅,对于JAVA ope ...

  3. Docker之Docker Machine已弃用

    作为刚开始学习docker的新手,从网上查询文档无疑是最快的学习捷径,但是这次在docker翻车了,困扰了整整三天,特记录一下. 一般我们使用docker for windows安装,一路往下点直至安 ...

  4. vSphere6提示已弃用VMFS卷的解决方法

    Deprecated VMFS volume(s) found on the host. Please consider upgrading volume(s) to the latest versi ...

  5. 写个 Hello world - 前端从入坑到弃坑系列教程(1)

    这是一个系列教程<前端从入坑到弃坑>的第一篇. HTML 是什么 说白了,HTML 就是网页的内容.比如你现在正在阅读的这个网页的内容,就是 HTML.如果你还不明白,请继续往下阅读. 写 ...

  6. C#标记 [已弃用] 的方法

    [Obsolete]//标记该方法已弃用 /// <summary> /// 你应该调用本类的 OpenMessageBox 方法 /// </summary> public ...

  7. (暂时弃坑)ACM数论之旅15---置换群与Polya定理(我把标题看成poi了,poipoipoi(*≧▽≦)ツ)

    (挖坑...) ////////////////////////////////////////////////// 暂时弃坑 开学了,有空再写....

  8. C# Obsolete(已弃用方法属性)

    class Realization : Interface { /// <summary> /// 已弃用的方法,Obsolete第二个参数设置为true,调用此方法会产生警告并引起编译器 ...

  9. gulp-htmlone的BUG弃坑

    之前用项目用gulp-htmlone做最后的js和css内联打包出现各种问题 这次居然遇到打包后的css斜杠变反斜杠的问题 如下:/src/common/images/i_banner.jpg会被改成 ...

随机推荐

  1. ArcGIS Server管理工具之批量发布动态地图服务工具.md

    友好阅读链接:(http://swj.me/2015/08/26/batchPublishtools/) update0918: 修复了创建链接文件时而出错的bug 修复了在24011的警告已处理的情 ...

  2. SpringBoot 配置文件 YML/Profile

    1. 全局配置文件 application.properties application.yml 配置文件名是固定的; 配置文件存放在src/main/resources目录或者类路径/config下 ...

  3. Geometric Progression---cf 567C(求组合方式,map离散)

    题目链接:http://codeforces.com/contest/567/problem/C 题意就是有n个数现在要让 ai aj  ak 构成公比为K的等比数列(i < j < k) ...

  4. qemu进程页表和EPT的同步问题

    背景分析: 在之前分析EPT violation的时候,没有太注意qemu进程页表和EPT的关系,从虚拟机运行过程分析,虚拟机访存使用自身页表和EPT完成地址转换,没有用到qemu进程页表,所以也就想 ...

  5. spring 拾遗

    1.@PostConstruct VS  init-method 1.1 both BeanPostProcessor 1.2 @PostConstruct is a JSR-250 annotati ...

  6. Mybatis框架学习总结-表的关联查询

    一对一关联 创建表和数据:创建一张教师表和班级表,这里假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. CREATE TABLE teacher( t_id INT PRIM ...

  7. SQL事务回滚 写法(转)

    以下是SQL 回滚的语句:方案一:SET   XACT_ABORT   ON--如果产生错误自动回滚GOBEGIN   TRANINSERT   INTO   A   VALUES   (4)INSE ...

  8. HDU中大数实现的题目,持续更新(JAVA实现)

    HDU1002:大数加法,PE了N次 import java.util.Scanner; import java.math.*; public class Main { public static v ...

  9. Java中的编码乱码问题

    1. Eclipse的Run Configurations中,可以配置Console的Encoding Eclipse中使用 mvn clean package命令来执行. 设置为MS932时,下面的 ...

  10. node的3大作用域

    除了持久性存储外,想要内存也可以存入数据,来做计算什么数据都存入访问一便数据库,效率就太低了 java有3大作用域request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应 ...