博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin修行之路——基本语法
阅读量:2233 次
发布时间:2019-05-09

本文共 2161 字,大约阅读时间需要 7 分钟。

随着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
) { 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 + bpublic 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 关键字初始化基类,或者在代理另一个构造函数。初始化基类时,可以调用基类的不同构造方法。
你可能感兴趣的文章
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>