芬兰湾的科特林是什么?吗?

芬兰湾的科特林是一种现代编程语言作为一个维护开源项目JetBrains,IDES的世界领先者。回到2011,JeTeWord主要是编写Java代码,寻找一种新的编程语言来帮助他们成为更高效的程序员。最终,他们决定创建一种叫做Kotlin的新编程语言。

多年来,科特林已经成为Java替代品的一个缩影,让Java开发人员轻松地升级到一个更富有表现力的语言。不仅如此,2017年5月,谷歌宣布Kotlin将成为Android平台上官方支持的语言。JetBrains和现在谷歌支持的项目,科特林的人气如此之高并不奇怪。

使用芬兰湾的科特林

要开始使用Kotlin,你需要的第一件事就是找个地方写代码。最简单的尝试写作芬兰湾的科特林代码的地方try.kotlinlang.org网站。它提供了大量的芬兰湾的科特林实践,如果您登录(它有大多数主要的社交网络作为登录选项),您甚至可以创建自己的程序,它将在云中为您保存这些程序(登录后,单击带有加号的文件夹按钮以创建新程序)。

您还可以在类似于IDE的Intellij思想中练习使用Kotlin。创建一个在IntelliJ IDEA芬兰湾的科特林项目跟进这些步骤.

如果你想在Android项目中使用Kotlin,退房这个页面以获取指示。

芬兰湾的科特林基础知识

变量

要在Kotlin中创建变量,我们使用var关键字。

var问候语:字符串=“世界你好!““

此代码告诉计算机创建一个名为“问候语”的新变量,该变量的类型为字符串并包含文本,“世界你好!“.

也,通常可以省略类型参数。如果芬兰湾的科特林能找出什么类型的东西,您不需要显式地指定它。编写上述示例的更常见方法是:

VaR问候语=世界你好!“//类型被推断为字符串

创建变量后,可以通过将其设置为其他值来轻松修改它:

VaR问候语=世界你好!“问候=你好芬兰湾的科特林!““

尽管有时当你创建一个变量,你宁愿它不能改变。在芬兰湾的科特林有两种类型的变量:可变和不可变的。可变意味着变量可以更改,不可变意味着它不能被改变。为了创建一个可变的变量,我们像以前那样使用var关键字。然而,要创建不可变的变量,我们需要使用val关键字。

如果我们将问候语示例改为使用val而不是var,第二行就会给我们一个编译错误,因为我们不再允许修改我们的问候变量:

val问候= "世界你好!“问候=你好芬兰湾的科特林!“//编译器错误:无法重新分配VAL

在上面的例子中我们已经利用字符串类型。让我们看看如何使用+运算符将两个字符串组合在一起。

瓦尔语言=Kotlin“val创造者= "JetBrains”VAL说明=语言+”是由“+创建者//描述=“Kotlin是由JetBrains创造的”“

这样的组合字符串一起被称为串联。有时使用+运算符连接可能有点麻烦。如果是这样的话,通常最好使用称为字符串模板的东西。双引号中的字符串模板让我们使用变量通过在变量前放置一个美元:

Val ReleaseDate=”2011年7月val releaseString = "芬兰湾的科特林被释放在releaseDate美元”//释放字符串=“Kotlin于2011年7月发布。”“

生成的releaseString包含releaseDate的值以及字符串的其余部分。我们可以完成同样的事情+操作符,但这种方式更干净,更容易阅读。

对于这些示例,我们一直在使用val关键字,这意味着在创建字符串之后不能更改它。记得,如果你希望能够修改变量创建后,只使用var关键字。

数字

随着字符串芬兰湾的科特林还提供了几个数值类型。其中最重要的是Int,长,浮动,双倍的。int和long用于整数,而float和double用于十进制值。也,Int和浮动每个使用32位来存储他们的价值观,而long和double使用64。所以如果你需要存储一个很大的数字,你可以用长的或双的来代替int或float。

默认情况下,任何整数值都将键入int,任何十进制数值都将键入double:

val num1=42//intval num2=3.14//double

如果你想声明一个数字为浮点数或长整数,您需要在数字末尾添加“f”或“l”:

val num1 = 42 l / / Longval num2 = 3.14 f / /浮动

您还可以使用totype函数在不同的数字类型之间进行转换:

val num1=42.tofloat()//floatval num2=num1.todouble()//double

也,使用Kotlin时,可以使用下划线使数字更具可读性:

Val Disttoon=92_960_000//英里(推断类型int)

布尔值

Kotlin还包含一个布尔类型。布尔类型是用来表示一个正确或错误的值。要设置布尔变量,请使用“真”或“假”关键字:

val isgoodday=trueval isbadday=false

空属性

在大多数语言中,当你创建一个变量,但不将其设置为某个值时,它得到一个空值,可以认为它不等于任何东西。当程序尝试使用空值执行某些操作时,空值会导致许多程序出现问题。例如:

/ / java codeString地址;println(地址);;

上面的代码创建一个名为'address'的字符串变量,然后在设置地址之前尝试打印出该地址。这会导致NullPointerException并使程序崩溃。

在Kotlin中,我们处理空值有点不同。而不是将变量默认为空,它实际上是一个错误不初始化一个变量:

val x:int//错误-必须初始化变量

也,不能将变量设置为空。你需要首先由使用该变量的类型标记为可空questionmark:

val x:int=null//错误-null不能是非空类型int val x:int的值?=null//okval y:string=null//错误-null不能是非空类型stringval y:string的值?= NUL//OK

还有几个运营商来帮助我们处理NULL值。我们来看下面的例子:

val name:字符串?=nullprintln(name.length)//错误-仅安全(?)或非空断言(!!)允许调用nullable String类型的接收机?吗?

我们声明了一个名为“name”的可空字符串变量,并将其设置为空。然后我们试着打印我们的字符串的长度。然而,因为Kotlin知道这个名称可能是空的,所以它向我们显示了一个错误。要修复此错误,我们有两个选项,我们可以断言(!!)该名称不为空,或者我们可以使用所谓的安全呼叫(?)

使用安全呼叫(例如名字?.length)表示如果名称为空,不是试图获取空对象的长度并导致错误,它将返回空值:

val name:字符串?= nullprintln(名字吗?.length)//打印”空”“

您将使用非空断言(!!)当你确定一个可以为空变量不能为空,如下所示:

var name:字符串?= nulLNe=树屋”println(名字!!.length)//打印”9““

集合

集合包含多个可通过订阅访问的项。芬兰湾的科特林提供了三个主要类型的集合:数组,列表,和地图。

数组

数组是所有具有相同类型的项的索引集合。要创建数组,我们使用arrayof函数:

val cardNames:数组=劳动力素质(“杰克”,“女王,“国王)

就像早些时候,只要Kotlin能找出变量的类型,我们不需要指定类型:

val cardnames=arrayof(“杰克”,“女王,“国王)

要从数组访问项,我们使用要访问的项的索引(从0开始)。因此,要访问数组中的第一个项,我们将使用:

val firstCard = cardNames [0] / / firstCard = "杰克”“

替换现有的条目数组中,下标,项目,等于一个不同的值:

卡名[ 0 ] =“王牌”“

数组是固定大小;一旦创建,没有办法添加或删除条目从一个数组。如果要添加和删除集合中的项,试着用一个列表。

列表

在Kotlin中有两种类型的列表:列表和可变列表。列表类的功能与数组非常相似,但不能修改列表中的项目。然而,MutableList类让我们修改列表中的物品以及添加和删除条目。要创建新的可变列表,我们使用mutablelistof函数:

VAL卡=可变列表杰克”,“女王,“国王)

使用MutableList添加/移除物品给我们几个选项:

cards.add(““王牌”/杰克,女王,国王Acecards.remove (“杰克”/女王,国王acecards.clear()//空的listcards.addall(“杰克”,“女王,“国王,““王牌”/杰克,女王,国王王牌

地图

最后一个重要的集合类型是地图(MutableMap)。地图允许我们存储键值对,并通过提供键来访问值。

例如,如果我们想将数字信息与卡数据一起存储,我们可以创建这样的地图:

VAL卡=映射杰克”到11,“女王至12日“国王到13)

上面我们指定了卡名作为键,并将它们映射到相应的值。这里我们使用的是字符串键和int值,但我们不仅仅局限于弦和音;您可以使用任何类型的地图。

要访问特定卡,只使用键来检索值:

val jackvalue=卡[”杰克”/ / 11

如果我们想在卡片地图上添加项目,我们首先需要把它改成可变地图,然后我们就可以设置新值:

VAL卡=可变映射杰克”到11,“女王至12日“国王到13)卡““王牌”= 1

还可以使用to mutablemap函数将映射转换为可变映射:

VAL卡=映射杰克”到11,“女王至12日“国王到13)val mutablecards=cards.tomutablemap()mutablecards[”“王牌”= 1

控制流

循环

在Kotlin中有两种循环:for循环和while循环。您可以使用for循环迭代如下集合:

VAL卡=可变列表杰克”,“女王,“国王)卡片(卡片){println(卡)}

println函数将打印出括号之间的值。因此,此代码将每张卡打印到一个新行上:

杰克金

for循环还可以用于循环一系列数字。打印数字1到10,您可以使用下面的for循环。

用于(i in 1..10)println(i)

然而,如果你想从10降到1,而不是两个点你需要报纸操作符:

对于(i在10到1之间)println(i)

也可以使用for循环来循环映射。此代码循环访问卡映射,并打印出每张卡的名称和值:

VAL卡=映射杰克”到11,“女王至12日“国王(13)(名称、值)在卡片中)println(“$名称,“价值”}

除了for循环,芬兰湾的科特林也提供了一个while循环。当循环用于循环直到满足特定条件时:

同时(仍在下载)println(“下载……”}

这段代码将打印”下载……”直到stilldownloading变量为false。

if表达式

大多数语言有一个if语句,但在芬兰湾的科特林有一个如果表达式(返回值)。因此,除了使用if语句之外,通常还使用:

Val A=5Val B=3Var Aisbigger=假(a>b)Aisbigger=真否则Aisbigger=假

我们也可以使用它们来设置变量(这样我们就可以使用val而不是var了!):

Val Aisbigger=如果(a>b)真否则假

不仅如此,如果括号之间只有一条线,然后括号是可选的:

val aIsBigger =如果其他(a > b)真的假的

当表达式

而不是一个switch语句,在芬兰湾的科特林我们得到一个表达式。可以使用when表达式将一个值与多个值进行比较,并根据它等于的值执行不同的操作。这是整数值的一个例子,一个卡和打印出卡的名字:

当(cardint)11->println(“杰克”)12->println(“女王)13 - > println (“国王}

就像一个if表达式,可以使用when表达式返回值。我们可以建立一个cardName变量如下:

val cardname=当(cardint)11->杰克”12 - >”女王13 - >”国王- >”其他“}

请注意,我们需要包括一个else分支。如果使用的是何时返回值,然后,它需要是详尽的。因为有很多整数,我们的when表达式不能解释(例如-107865年),我们需要包含else分支以确保cardname设置为某个值。

功能

函数是可以用来简化程序的代码块。例如,println是一个函数,它接受一个变量并打印其价值到屏幕上。

在Kotlin中,我们可以使用“fun”关键字创建自己的函数,然后为函数提供名称:

fun printJack()println(“杰克”}

我们还可以向函数添加参数:

趣味打印卡(cardname:string,cardvalue:int)println(“$cardName=$cardValue“}

如果我们愿意,而不是打印卡,我们可以将其作为字符串对象返回:

fun getcardstring(cardname:string,cardValue:int):字符串返回(“$cardName=$cardValue“}

芬兰湾的科特林另一个很酷的事情是,当你发现自己编写一个函数只有一个返回语句,你可以省略括号和返回关键字,而选择等号:

fun getcardstring(cardname:string,cardValue:Int):字符串= "$cardName=$cardValue““

芬兰湾的科特林甚至可以推断返回类型将一个字符串。声明您的返回类型没有错,但在科特林,这并不总是必要的:

fun getcardstring(cardname:string,cardValue:int)=$cardName=$cardValue““

结论

如果你能做到这一点,那恭喜你了!你现在有了一个很好的基础,可以开始建立一些严肃的科特林知识。要接受的东西很多,但我们只触及了科特林的表面。还有很多东西要学,在树屋,我们正在学习课程,为你提供你所需要的所有知识。敬请期待!!

如果你想学芬兰湾的科特林的基本知识,拿我们Java开发者Kotlin当然。这是一个伟大的课程,建立一个无头纸牌应用程序,如果你还不是Java开发者,不要担心。在这篇文章中,你学到了什么你之后就没有麻烦了!!