Kotlin学习之路(一)

  • kotlin的简介
  • kotlin基础
    • 基本数据类型
    • 运算符
    • 数组
    • kotlin中的控制流

1. kotlin的简介

随着Google I/0 2017的结束,Kotlin已经成为热搜。耐不住自己内心的寂寞,于是开始了Kotlin的“入坑之路”。Kotlin 是⼀门针对 JVM、Android、JavaScript 以及原⽣平台的开源(OSS)静态类型编程语⾔。它是由 JetBrains 开发的。该项⽬开始于 2010 年并且很早就已开源。Kotlin 既具有⾯向对象⼜具有函数式结构。

2.kotlin基础

AndroidStudio中kotlin的配置
在AS中的配置大家可以打开上面的链接,上面是kotlin官网中文翻译,包含了在各个平台的教程。刚开始了解kotlin,这次先记录下kotlin的基础知识。

<1>基本数据类型(左图)和运算符(右图)

这里写图片描述 这里写图片描述

一看有点像java中的数据类型,看似相同,但也并不是完全一样,如java中的int可以隐式转换为long型,在kotlin中,较小类型不能隐式的转换为较大的类型,需要通过显示转换。因此提供为每个数据类型提供了如下的转换:

这里写图片描述

接下来看看代码就一目了然了,下面代码都是在androidstudio上呈现的。
编译器直接提示类型不匹配

这里写图片描述

正确转换如下:

val a: Byte = 1
val b: Int =a.toInt()

val与java中的final相似。kotlin中用val声明的 Element表示只读,而var表示既可读,又可写。换言之,前者只有getter();后者包含getter()和setter()。

字符串模板表达式
字符串可以用模板表达式,以下代码为例,输出s为 i=10。

val i = 10  //以"="后面的值决定数据类型,i为Int型
val s = "i = $i"

其中$后面也可以用花括号括起来的任意表达式,如下图:

val s = "123456789"   //s为string类型
val l = "s.length is ${s.length}"

输出结果:

引用块内容

原生字符串,用三个引号(“”“)括起来,其内部没有转义,可以包含换行和任何其它字符:

val text = """
for (c in "foo")
print(c)
"""

trimMargin() 函数去除前导空格:

val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()

数组
数组在kotlin中用Array表示,它定义了get()和set()、size等属性。

//数组的创建,使用库函数arrayOf创建
var mArray = arrayOf(1,2,3)

//创建一个Array<String> ,初始化为[0,1,4,9,16]
val strArray=Array(5,{ i->(i*i).toString() })

Kotlin 表⽰原⽣类型数组: ByteArray 、ShortArray 、IntArray 等等
注意: 与 Java 不同的是,Kotlin 中数组是不型变的(invariant)。这意味着 Kotlin 不让我们把 Array 赋值给 Array ,以防⽌可能的运
⾏时失败

<2>kotlin中的控制流

if表达式

var value: Int =0
//传统方式
if (a>b) value=a

//和else搭配
if (a>b){
    value=a
 }
 else{
     value=b
}  

//表达式
 var m = if (a>b) a else b

在表达式的分支中可以是代码块,最后的表达式作为该块的值:

val max = if (a > b) {
    print("Choose a")
    a
} else {
    print("Choose b")
    b
}

When表达式
when取代了java中的switch操作符,这个更改可谓让人省心了不少 =_=
如何让人省心的,来瞧瞧~~~

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
else -> {  // 注意这个块
    print("x is neither 1 nor 2")
    }
}

when将它的参数和每一个分支条件顺序比较,它既可以是表达式,又可以使语句,作为表达式时,符合分支条件的值为表达式的值;作为语句,则忽略个别分支。但when用作表示式时,必须要与else搭配使用。

注:分支条件可以是任意的表达式,而不仅仅限于常量

fun whenFunction(i: Any)= when(i){
            rangeTest(i)-> println("rangeTest")
            1 -> println("i is 1")
            is string ->println("i is string")
            "d"-> println("i is d")
            in 2..10 -> println("i is in range")
            else -> println("i is null")
        }

上述代码中,满足某个分支条件时,该分支条件后面的输出值为该表达式的值。
在when不提供参数的情况,可以取代if —else ,if链,所有的分支条件都是最简单的布尔表达式。

for循环

for循环列举几种方式,其余的大家可以在上面给出的官网中文翻译中查看


//遍历一个List
for(item in List){
    println(item)
}

//遍历一个数据的下标
for(i in array.indices){
    println(array[i])
}

//下面括号内与java中(int i;i<=10;i++)相似
for(i in 1..10 ){
    println("i=$i")
}

for(i int 1 until 10){
    println("不包括10")
}

//每循环一次i=i+3,超出[1,10]区间则停止。
for(i in 1..10 step 3){
    println("i=$i")
}

while循环就不在写了,和java,c++中的类似。

kotlin的基础在这先结束,文章中只是示例了两三个数据类型而已,由于名字和java类似,就不一一介绍,但要注意在声明和使用中与java是有所不同的。后面对与kotlin的类和对象的,接口的理解,将会结合Android项目来总结,这样会更通俗易懂。

Kotlin是一种现代化的静态类型编程语言,它可以在Java虚拟机(JVM)上运行,并且与Java语言高度兼容。如果你想学习Kotlin,以下是一个学习路线的建议: 1. 了解基础知识:开始学习Kotlin之前,建议先了解一些基本的编程概念和语法,比如变量、数据类型、条件语句、循环语句等。这将为你后续的学习打下坚实的基础。 2. 学习Kotlin语法:Kotlin与Java有很多相似之处,但也有一些不同之处。学习Kotlin的语法和特性,比如空安全、扩展函数、数据类等,可以通过官方文档、教程或在线课程来学习。 3. 实践编程:通过编写一些简单的程序来巩固所学的知识。可以尝试解决一些小问题或者完成一些小项目,这样可以更好地理解和应用Kotlin的语法和特性。 4. 深入学习面向对象编程:Kotlin是一种面向对象的编程语言,深入学习面向对象编程的概念和原则对于掌握Kotlin非常重要。学习类、对象、继承、多态等概念,并尝试在Kotlin中应用这些概念。 5. 学习Kotlin与Java的互操作性:由于Kotlin与Java高度兼容,学习如何在Kotlin中使用Java类库和框架是非常重要的。了解如何调用Java代码、处理Java集合等,可以帮助你更好地使用Kotlin进行开发。 6. 深入学习Kotlin的高级特性:一旦掌握了Kotlin的基础知识,可以进一步学习一些高级特性,比如协程、函数式编程、DSL等。这些特性可以提高你的代码质量和开发效率。 7. 参与实际项目:最好的学习方式是通过实践。尝试参与一些实际的项目或者开源项目,与其他开发者合作,这样可以提升你的编程能力和实践经验。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值