过去与现在
我开发Android的IDE从Eclipse过渡到Android Studio。
现在连编程语言也是将要从Java变到了Kotlin了。
现在时代和技术不断在变,Google亲儿子语言Kotlin的诞生,到现在也逐渐壮大,官网(http://kotlinlang.org/)的介绍也是吊炸天,不过和Java100%兼容还是不错的。
只能力求Kotlin牛逼一点,带我飞,面向的开发领域在突出点。否则你的Dad会离你而去。
现在互联网资源这么发达,我的英语水平这么差,所以为了及时快速的学习,我会首选菜鸟教程把知识点都挨个儿的过一遍,在去有翻译的中文文档去过一遍,再去官方社区遨游一下。
一、初试main()函数:
fun main(args : Array<String>){
print("love 杜姝燕")
}
二、初试面向对象示例:
fun main(args : Array<String>){
print("love 杜姝燕")
Greeter("dushuyan").greet("nv")
}
class Greeter(val name: String) {
fun greet(sex:String) {
println("Hello, $name"+sex)
}
}
三、安慰自己的一些优点:
简洁: 大大减少样板代码的数量。
安全: 避免空指针异常等整个类的错误。
互操作性: 充分利用 JVM、Android 和浏览器的现有库。
工具友好: 可用任何 Java IDE 或者使用命令行构建。
四、该改口了 叫函数 , 也没有封号
fun sum(a : Int,b : Int):Int{
return a+b
}
简写函数 感觉写出来还是比较清晰
public fun sum(a: Int, b: Int): Int = a + b
五、函数写法(有返回、无返回)
1、有返回参数的函数
*需要注意返回类型
public fun orint(a:String):String{
return a
}
2、无返回参数的函数
var b =1
public fun orint(a:String){
b=3
println(b.toString()+a)
}
六、Var 和 Val 的区别,如何使用:
1、Var 是定义变量的,需要赋值初始值
2、Val 是定义常量的,只能赋值一次
七、NULL空检查机制
在类型声明之后写 ?
var a: Int? = 123321
比如方法返回可能是返回一个NULL类型,参数声明需要标记?
fun orint(a:String?):String?{
return a
}
八、Any 、 is 、 .. 、step 、downTo 、until
Any 就像是上帝Object
is 就像是instance
.. 就像是 in
step 步进值
downTo 从大到小
until 区间不包括 [1,2)
for (i in 1..1) print(i)
输出结果: 1
for (i in 1..4) print(i)
输出结果: 1234
for (i in 4..1) print(i)
无输出结果
for (i in 4 downTo 1) print(i)
输出结果:4321
指定步长—step
for (i in 1..4 step 2) print(i)
输出结果:13
for (i in 4 downTo 1 step 2) print(i)
输出结果:42
使用 until 函数排除结束元素
i in [1, 10) 排除了 10
for (i in 1 until 10) {
println(i)
}
九、基本数据类型
1、虽然在写程序的时候并不需要声明类型,但是内部还是有划分基本类型的。
包括:Byte、Short、Int、Long、Float 、Double
在复制的时候,可以用下划线“_”来间隔基本数据类型,这个我是第一次见啊
==是比较值
===是比较对象地址
2、类型转化 暴力强转
val a : Byte = 1
val b : Int = b.toInt()
3、数组Array
Array、ByteArray 、ShortArray 、IntArray
数组是不可变的,但是有size、set、get方法
var v = arrayOf(1,2)
v.set(0,3)
for (i:Int in v){
print(i)
}
4、字符串
“”” “”“三个双引号的使用
var infoStr : String ="""
网速不好
因为
爱意很浓
""".trimIndent()
print(infoStr)
*字符串模板 ($)把结果合并到字符串中,用“{ }”可以执行方法,
var core:String = "1234"
println("$core"+"\n123"+"\n${core.length}"+"\n${'$'}")