Kotlin学习笔记(一)

过去与现在

我开发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${'$'}") 

猜你喜欢

转载自blog.csdn.net/Mr_ChenXu/article/details/80421183