Kotlin修行之路——基本语法

本文介绍了Kotlin作为Android开发的首选语言的原因及其基本语法。从HelloWorld开始,讲解了Kotlin中的函数定义、变量声明、类型注解及继承等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随着Google大大扶正了Kotlin的地位,这一门名不经传的小语言瞬间成了圈子中的话题

虽然去年就开始接触Kotlin,但是它可以迅速篡位并且成为Android开发的第一语言也是我始料未及的,这大概主要还要归功于Google和甲骨文的撕逼吧。

这些我们都管不着,我们能干的就只能听天由命,好,既然他们说Kotlin为第一语言,那我们就学好了,反正程序员这一行也意味着终身学习


我推荐两个网站

一个是Kotlin官方网站:http://kotlinlang.org/

中文版:https://www.kotlincn.net/

还有一个是菜鸟驿站的:http://www.runoob.com/kotlin


Kotlin到底是什么?

首先,我们先看看某度上面的定义:Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行

所以,这玩意儿可以和我们的Java相互调用。

并且,在语法上它比java更加简洁,同时支持Lamada,减少了空引用的危险。。。等等的优点似乎都让人觉得Kotlin有着一个美好的未来


从HelloWorld进入Kotlin世界

其实第一次看到kotlin的时候,我觉得它有点不三不四,像Java,又像JS,总觉得用起来不怎么顺手

废话少说,我们从第一个demo开始,我的IDE是用IDEA,它的亲妈妈,在2017版本中已经完全支持kotlin语言,至于之前的版本如果没有可以下载相应的插件

建立一个项目,新建一个名为Helloworld.kt的文件

接下来,我们编写一个main函数,这个和java相似,并且传入的参数都为字符串数组

代码如下:

fun main(args: Array<String>) {
    println("HelloWorld!")
}
相信大家很快就可以看出这段代码的含义,运行代码,我们就可以在控制台看到相对应的输出内容了。


常用语法

当我们可以在控制台打印出内容时,我们已经信心大增了,接下来,我们趁热打铁,更深入了解下Kotlin的常见语法

一:函数

在java中,我们数据类型分为四类八种(这个是基础,不多解释),Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于Java的是,字符不属于数值类型,是一个独立的数据类型。

同时,我们在java中形参定义参数,通常是类似于int i,String str等形式,在Kotlin中则为i:Int,d:Double,表示参数属于什么类型,这个容易理解,只是使用起来比较蹩脚

接下来,我们定义一个函数,理解一下上面这些解释的含义

fun sum(a: Int, b: Int): Int { 
    return a + b
}
等同于
fun sum(a: Int, b: Int) = a + b

public fun sum(a: Int, b: Int): Int = a + b 


解释为:一个叫sum的函数,传入两个Int类型的数据,分别为a,b,并且返回类型也为Int

如果我们用表达式表示可以忽略数据类型,但如果方法为public,则必须添加


同时Kotlin中没有Void 关键字,如果表示执行一个方法不返回参数

fun printSum(a: Int, b: Int): Unit { 
	print(a + b)
}


// 如果是返回 Unit类型,则可以省略(对于public方法也是这样):
public fun printSum(a: Int, b: Int) { 
	print(a + b)
}

二、变量与常量

关键字为var、与val

这个与Java有很大的差别,val 表示定义常量,var表示变量(我们可以省略类型,也可以不省略)

例如:

var str = "hello"
var str:String= "hello" 

他们是等价的,都代表了定义了一个String类型的变量str

我在上文中说到,Kotlin实现了空值安全,我们在类型后面添加问号表示可以为空

例如

var str:String?= null


三、继承

java继承类时,使用关键字extends,kotlin中,只需要一个冒号即可

在Kotlin中,所有类都继承于Any类,该类提供了三个函数,equals()、hashCode()、toString()

我们根据之前的知识点,开始实现Kotlin的继承关系

子类有主构造函数

如果子类中有主构造函数,基类必须在主构造函数中初始化

首先,我们写一个基类,这里强调一点,如果一个类要被继承,需要被open修饰

open class Person(name:String,age:Int)
 定义一个可被继承的Person类,包括的参数为名字与年龄

接着,定义Adrian类继承Person

class Adrian(name:String,age:Int) : Person(name,age)


主类没有主构造函数

如果子类没有主构造函数,则必须在每一个二级构造函数中用 super 关键字初始化基类,或者在代理另一个构造函数。初始化基类时,可以调用基类的不同构造方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值