xml地图|网站地图|网站标签 [设为首页] [加入收藏]

智能家电

当前位置:美高梅游戏网站 > 智能家电 > Kotlin基础语法

Kotlin基础语法

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-10 13:43

包的声明应该在源文件的顶端

1.背景
2.环境搭建
3.Kotlin简介
4.基本数据类型

<code>package my.demo import java.util. * // ...

1.背景

    今年的Google I/O 上,Google 正式宣布官方支持 Kotlin,将Kotlin语言作为官方的编程语言,一时之间Kotlin上了热搜,有很多小伙伴开始焦虑是不是要马上学习Kotlin,唯恐落后被淘汰,而我想说的是Kotlin只是一门编程语言,平台还是那个平台,其次,一门语言代替另一门语言是需要一个过程的。所以大家没有必要过于着急。 
    一时之间网上涌现大量有关Kotlin的文章,各种介绍,各种教程链接,我大概看了一下,感觉都不太系统即使官方的教程,不过花时间仔细研究还是没有问题的。为了更系统化一些,所有决定写一系列的有关Kotlin的文章,记录学习Kotlin的过程。

目录和包不要求匹配

2.环境搭建

从Android Studio3.0以后才会默认支持Kotlin,所以3.0以下的版本需要安装插件才能使用。

函数有两个整形参数和返回整形结果

2.1安装插件

在Android Studio中执行 Settings -> plugins -> BrowseRepositories中搜索“Kotlin

图片 1

fun sum(a: Int, b: Int): Int { return a + b}
2.2 项目配置

使用Kotlin创建Kotlin File/Class或者是Kotlin Activity;Kotlin插件安装成功后,执行new操作,会发现弹窗多出了两个Kotlin相关选项:

图片 2

点击对应的即可,想使用Kotlin必须走module 的 gradle文件中配置

图片 3

图片 4

手动配置或者是在创建Kotlin语法的类文件之后,根据提示自动配置

函数根据表达式内容推出返回结果<pre><code>fun sum(a: Int, b: Int) = a + b</pre></code>函数无返回值

3.Kotlin简介

fun printSum(a: Int, b: Int): Unit { println("sum of $a and $b is ${a + b}")}
1)Kotlin是什么?
  • Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。
  • Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。
  • JetBrains,作为目前广受欢迎的Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。

Unit 返回类型能够被忽略

2)Kotlin的特性
  • Kotlin是一种兼容Java的语言;
  • Kotlin比Java更安全,能够静态检测常见的陷阱。如:引用空指针;
  • Kotlin比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现;
  • Kotlin可与Java语言无缝通信。这意味着我们可以在Kotlin代码中使用任何已有的Java库;同样的Kotlin代码还可以为Java代码所用;
  • Kotlin在代码中很少需要在代码中指定类型,因为编译器可以在绝大多数情况下推断出变量或是函数返回值的类型。这样就能获得两个好处:简洁与安全;
fun printSum(a: Int, b: Int) { println("sum of $a and $b is ${a + b}")}

4.基本类型

变量的定义格式:

var 变量名 : 数据类型

定义常量

基本类型
类型 所占字节
Double 8
Float 4
Long 8
Int 4
Short 2
Byte 1

注意:Kotlin中不支持数据类型的隐士转换,必须显示转换

var a : Byte = 1;
var b : Int = a;//在java中这样写是可以自动转换的,但是在Kotlin中是错误的

 //正确的写法
 var a : Byte = 1;
 var b : Int = a.toInt();//必须显式转换
val a: Int = 1 // immediate assignment val b = 2 // `Int` type is inferredval c: Int // Type required when no initializer is providedc = 3 // deferred assignment

字符类型:Char

Char :不能直接当作数字,字符字面值用单引号括起来: '1'。 特殊字符可以用反斜杠转义

var c : Char = '1';
if(c == 1){ //这样写是错误的,也必须显式转换,如果可以转换的话。
}

可变变量

布尔类型:Boolean

布尔用 Boolean 类型表示,它有两个值:true 和 false。跟java中的用法一致,主要用于逻辑运算和逻辑判断

var x = 5 // `Int` type is inferredx += 1

字符串:String

字符串用 String 类型表示。字符串是不可变的,用法跟Java中类似,也是可以通过下标索引来获取对应的字符的,不同的是在Java 中字符串的拼接可以用“+”,在Kotlin中使用<b>字符串模板</b>

模板表达式以美元符($)开始,表示取后面变量的值。

val s = "abc"
val str = "$s.length is ${s.length}" // 结果为 "abc.length is 3"

就像Java和JavaScript,Kotlin 支持行尾和块注释

数组:Array

数组在 Kotlin 中使用 Array 类来表示,默认提供两个方法get 和set以及一个属性size

var ary : Array = arrayOf(1, 2, 3) // [1,2,3],只是定义的方式与Java不一样,其他的用法都是一样的。
// This is an end-of-line comment /* This is a block comment on multiple lines. */

下一篇:Kotlin基础语法(二)-运算符和控制流

和Java不同的是,Kotlin块注释能够被嵌套

关注微信公众号获取更多相关资源

图片 5

Android的小先生

var a = 1// simple name in template:val s1 = "a is $a" a = 2// arbitrary expression in template:val s2 = "${s1.replace("is", "was")}, but now is $a"Using conditional expressionsfun maxOf(a: Int, b: Int): Int { if  { return a } else { return b }}

fun maxOf(a: Int, b: Int) = if  a else b

引用的值如果可能为空的话那么必须被明确的标注为可空的。返回空如果str不可被转化为整数

fun parseInt(str: String): Int? { // ... }

用一个函数返回可空的值

fun printProduct(arg1: String, arg2: String) { val x = parseInt val y = parseInt // Using `x * y` yields error because they may hold nulls. if (x != null && y != null) { // x and y are automatically cast to non-nullable after null check println } else { println("either '$arg1' or '$arg2' is not a number") } }

或者

// ...if (x == null) { println("Wrong number format in arg1: '${arg1}'") return}if (y == null) { println("Wrong number format in arg2: '${arg2}'") return}// x and y are automatically cast to non-nullable after null checkprintln

本文由美高梅游戏网站发布于智能家电,转载请注明出处:Kotlin基础语法

关键词: