Kotlin修行之路——基本语法

随着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 关键字初始化基类,或者在代理另一个构造函数。初始化基类时,可以调用基类的不同构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值