前言
本人学Kotlin是冲着做安卓去的,所以一开始上来就借助Android studio成功创建一个Kotlin文件,洋洋洒洒用Kotlin写几个控件,然后直呼Kotlin大法好啊,自以为入门了,其实NO!NO!NO!, 写一个成序就好比盖一座房子,你只有熟悉每一块材料的用途,才能盖出你想要的房子。打完脸后决定从地基开始。
基本数据类型
和java类似Kotlin也有自己的基本数据类型,语法差别不多只是书写的方式不一样:
Int //整形
Long//长整形
Double//双精度
Boolean //布尔类型
Char//字符型
String //字符串
哈哈简单总结一下就是:Kotlin就是Java基本类型的大写嘛,这个地方还是比较好记的。
那Kotlin是如何来定义变量的呢?其实这个地方和Java差别还是蛮大的。
Kotlin : 变量名: 变量类型 方法结尾的;号也不是必须换号写则不需要结束号
JAVA : *变量类型:变量名;*顺序相反同时要加上语句结束号
所以Kotlin如下
var Content:String = "Hello World"
val Content :String ="Hello World"
细心的朋友会发现同样声明变量一个用var 一个用val 他两有啥区别呢?
val:修饰的变量只能在定义的时候赋值后续无法再次赋值类似Java中的final。
var :修饰的变量可以理解成是默认的在任何时候都可以赋值。
类型装换
最后就是基本数据类型之间的转换:
我们知道在java中存在强制类型装换的,如果不考虑丢失精度的情况下:
int a = (int) 10.0f;//将浮点型强制装换成整形
那Kotlin怎么做的呢?
val value: Float = 100.0f
val int : Int = value.toInt()
toInt() 以此类推Kotlin转换成啥就to+变量类型,这个比java要好理解(toLong、toDouble 。。。)
Kotlin中String
上面讲到Kotlin中基本变量的写法,为啥把String单独拿出来写?其实真正开发中String要比其它变量使用的更灵活,用法也很多,再者String在java中也不属于基本数据类型,所以这里看一下Kotlin中String有哪些神操作。
String与基本类型的转换
我们知道String不属于基本数据类型,Java中String和其他类型之间的转换也另当别带
Integer.parseInt("要转化的字符串");// int
Long.parseLong("要转化的字符串");// long
等
**而Kotlin 大法依旧是to+要转换的类型。**不需要和基本数据类型区别对待。
String拼接
写项目的时候拼接字符串是再常见不过的了,比如价格、名称等,不知道有没有和我一样对java中拼接苦不堪言的,在java中通过String.fromat进行格式化但是它的占位符意义真的让人有点头大,很容易记混了像:
%d、%f、%s、%c、%b等
为了记住它们我还特意写了一篇博客
String中占位符意义
看Kotlin给我们省去了哪些麻烦:
var price: Float = 8.0f
var desc : String = "这个笔记本的价格是:$price"
是不是很小清新,直接在字符串后面加入:$变量名。(再也不用担心记不住占位符啦!)全部搞定不用管数据是什么类型的。
那假如要是在拼接的字符串里面有些计算操作而不是直接拼接还是这样吗?
var price: Float = 8.0f
var num:Int = 3
var desc : String = "这个笔记本的价格是:${price*num}"
Kotlin是怎么做的?加了一个 {} 变成 ${ 要执行的运算} 依然小清新
转义,像$符这样特殊符号,无法直接打印,看看Kotlin的转义语法:
var price: Float = 8.0f
var num:Int = 3
var desc : String = "这个笔记本的价格是:${price*num} ${'$'}" // ${'要转义的字符串'}
总结一下就是:
变量名直接$ 符
带有运算:${ }转义:${ ’ ’ }
到这String的一些基本用法就了解的差不多了,其实Kotlin中String的截取,替换等这些都没写,等写数组的时候一起吧。如果你是一位java用户的话,你会发现Kotlin中的很多语法真的很小清新!