博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么我从Java切换到Kotlin
阅读量:2528 次
发布时间:2019-05-11

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

经过 ,我成为了专业的软件开发人员。 那使我开始使用 ,但是最近,我开始享受一种完全不同但兼容的编程语言,称为 。

自开发初期就 。

对于Java开发人员而言,好消息是Kotlin可与Java互操作。 标准Java代码可以包含在Kotlin程序中,而Kotlin可以包含在Java程序中。 兼容性方面的巨大投资意味着,如果您来自Java背景,那么选择Kotlin会让您感到熟悉并且风险很小,因为它将与您现有的任何Java代码一起运行。

为了向您介绍Kotlin,我将介绍其一些基本语法,从变量到定义函数和类。 如果您想继续学习该语言的某些功能,可以使用基于浏览器的 。

变数

Kotlin中的变量会让您感到熟悉。 以下是一些创建基本整数的示例:

var I      
=
5
val j
=
7
var k
: Int
=
8

varval分配之间有一个细微而重要的区别:当可以重新分配您定义的变量时使用var ,而val用于不会更改的局部范围值。 每个变量的类型都是可选的,因为可以推断类型,类似于JavaScript中的动态分配。 也有使用以下语法的可空分配:

var f : Int ? = 9

这意味着分配的值可以等于null。 的不在本文讨论范围之内,但重要的是要知道变量只有在明确定义为null时才能等于null。

如果计划定义没有初始实例化(值)的变量,则必须将类型放在变量名称之后:

var s : Int

字符串的组成类似,其类型在变量名之后:

val a :  = "Hello"

琴弦在Kotlin具有超能力。 它们包括了很棒的字符串模板函数,您可以进行 。

数组

另一个基本类型是数组。 它可以存储预定数量的相同定义类型的对象。 在Kotlin中有几种不同的创建数组的方法,例如:

val arrA      
= arrayOf
(
1 ,
2 ,
3
)
val arrB
= arrayOfNulls
< Int
?>
(
3
)
val arrC
= Array
< Int
?>
(
3
)
{
5
}

第一个创建一个长度为3的数组,元素1、2和3; 第二个创建一个可为null的整数类型的null数组; 第三个创建了一个可空整数数组,每个元素等于5。

要检索元素之一,请使用括号符号(从零开始)。 因此,要检索第一个数组中的第一个元素,请使用: arrA[0]

馆藏

在Kotlin中对对象进行分组的其他方式通常称为集合。 Kotlin有几种类型的收藏。 每个都可以是可变的(可更改/可写)或不可变的(只读)。

  • 列表:一个有序的项目组可以包含重复的项目,并且必须是同一类型。 可变列表可以这样形成:
    var mutList        
    = mutableListOf
    (
    7 ,
    5 ,
    9 ,
    1
    )
    val readList
    = listOf
    (
    1 ,
    3 ,
    2
    )
  • 地图:类似于Java中的HashMap,地图由键和值组成。 键必须是唯一的。 它们被实例化为:
    var mapMut        
    = mutableMapOf
    (
    5 to
    "One" ,
    6 to
    "Five"
    )
    val mapRead
    = mapOf
    (
    1 to
    "Seven" ,
    3 to
    "six"
    )
  • 集:集是一种数据结构,其中组中的每个对象都是唯一的。 它们是这样创建的:
    var setMut         
    = mutableSetOf
    (
    1 ,
    3 ,
    5 ,
    2
    )
    val readSet
    = setOf
    (
    4 ,
    3 ,
    2
    )

每当您尝试重新分配不可变对象时,都会收到语法错误,指出Val cannot be reassigned 。 当您有一个不想被程序的任何部分编辑的集合时,此行为会派上用场。

功能

函数是格式良好的软件程序的基础。 存储为函数的可重复代码位可以重复使用,而无需一遍又一遍地重写相同的命令。 在Kotlin中,用于创建函数的标准语法为:

fun doSomething      
( param1
:
)
: Unit
{
println
(
"This function is doing something!"
)
;
}

此示例函数接受字符串作为唯一参数; 如您所见,参数类型位于参数名称之后。 当函数不返回值时(尽管Unit是一个值,并且只有一个值,因为它是单例),所以Unit对象是Kotlin,等效于Java的 。 Kotlin函数的工作方式与使用Java和其他一些语言时一样。

班级

Kotlin中的类与其他将对象/类视为基础构建块的面向对象编程(OOP)语言中的类非常相似。 使用以下语法创建类:

class ExampleClass {
}

默认情况下,类拥有一个主要的构造函数,该构造函数可用于设置对象属性,而无需编写用于getter / setter(访问器/更改器)的代码。 这样就很容易创建对象并开始使用它,而无需太多样板代码。 主构造函数不能包含实现代码,只能包含参数:

public class ExampleClass constructor(type:String)

要编写主要的构造函数实现,可以在类中使用init

init{     
val internalType:String = type
}

或者,您可以通过在每个参数前面放置valvar在构造函数中对其进行初始化:

public class ExampleClass constructor ( var type :  , var size : Int )

尽管这没有深入到类,属性和可见性修改器中,但是它应该使您开始在Kotlin中创建对象。

“主要”点

Kotlin文件的.kt 。 要开始运行Kotlin文件,编译器会在文件中查找main功能; 因此,基本的“ Hello World”程序将如下所示:

fun main      
( args
: Array
< String
>
)
{
println
(
"Hello World"
)
}

轻轻松松吧?

Kotlin是一种高级但直观的OOP语言,可简化和简化针对移动设备,服务器端,Web和数据科学应用程序的Java开发。 我发现它的语法和配置比Java简单得多。

例如,比较Java中的print语句:

. out . println ( "Hi" )

与Kotlin的语法:

println ( "Hello" )

此外,getter和setter不需要其他库即可轻松实现。 在Java中,像Lombok这样的库通过注释简化了类/对象属性设置。 在Kotlin中,可以使用属性轻松实现类:

class Person      
{
        var firstName
:
=
""
        var lastName
:
=
""
        var age
: Int
?
=
null
        var gender
:
?
=
null
}

可以使用以下语法来检索或设置这些属性:

var me      
= Person
(
)
me.
firstName
= “Stephon”
me.
lastName
= “Brown”

Kotlin的简单性和Java互操作性对您花时间学习无用的东西的风险很小。 在迈出Kotlin的第一步之后,您可能再也不会以相同的方式看待Java代码或JVM。

翻译自:

转载地址:http://lbbzd.baihongyu.com/

你可能感兴趣的文章
模板方法模式
查看>>
Testing Framework -- Junit 、 TestNG 、 SpringTest
查看>>
【1】PRML简介
查看>>
LeetCode:Same Tree
查看>>
数组排序
查看>>
Gradle for Android 翻译 -1
查看>>
章节1:SQL语言简易入门
查看>>
用Eclipse+pydev调试python传入参数配置
查看>>
数组与集合的简单理解!
查看>>
Java ClassLoader详解(转载)
查看>>
Python pip源配置
查看>>
yaml 入手
查看>>
Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
查看>>
写程序判断系统是大端序还是小端序
查看>>
EntityFramework中的DbContext使用疑点说明
查看>>
练习有感
查看>>
Android 获取应用文件的路径即 /data/data/<youPackageName>/files
查看>>
JAVA正则表达式 Pattern和Matcher
查看>>
引用类型笔记
查看>>
第三课(4)接口
查看>>