Kotlin基础语法

来源:互联网 发布:油画 知乎 编辑:程序博客网 时间:2024/05/29 02:26
  • 说明

 JDK版本:1.8

 开发工具:IntelliJ IDEA

 Github:https://github.com/Rushro2m/LearnKotlin

常量与变量
  • 常量

 定义:val 常量名(任意文字、长度不限)

 赋值:val 常量名 = 值

val salary = 5000val π = 3.1415926val age = 24    fun main(args: Array<String>) {        println("工资是:${salary}")        println("π的值是:${π}")        println("年龄是:${age}")    }
  • 变量

 定义:var 变量名(任意文字、长度不限)

 赋值:var 变量名 = 值

var openTime = 5var workTime = 10fun main(args: Array<String>) {    openTime = 6    workTime = 12    println("空调开放的时间是:${openTime}")    println("每天工作的时间是:${workTime}")}  
值的类型
  • 整数型

 整数,在Kotlin中称为Int类型的值

 形式:var 变量名:Int = 3

 由于Kotlin有类型推断,类型可以省略不写

 所以,也可以这么写:var 变量名 = 3

fun main(args: Array<String>) {    var run: Int = 4    val salary = 4000    run = 6    println("每天跑步${run}公里")    println("每个月的工资是:${salary}元")}
  • 浮点型

 浮点型,也就是小数类型。

 Kotlin中默认的浮点型是Double(双精度)。

 Double类型可以保存小数点后15/16位(如果第16位>=5,则保留16位,否则保留15位),Float可以保存小数点后7位,所以Kotlin中不推荐使用Float类型的小数。

fun main(args: Array<String>) {    val pi: Double = 3.1415926535897932384626    val a: Float = 3.333333364345353F    println("圆周率是:${pi}")    println(a)}
  • 布尔类型

 布尔型:Boolean

 表示逻辑上的“真”或“假”

 只有2个值,true和false

 定义:val/var 常量名/变量名(:Boolean) = true/false

fun main(args: Array<String>) {    var isVip = true    if (isVip) {        println("欢迎Vip会员")    } else {        println("还不赶紧充值")    }}
  • 元组类型

 元组(Tuple),给多个变量同时赋值,份儿元(Pair)和三元(Triple)

 可以对三个变量分别定义常量名/变量名,通过各自的常量名/变量名去调用数据,也可以定一个总的常量名/变量名,通过常量名/变量名的first,second,third去调用对应属性。

 一般情况下定义方法:

val/var (name1,name2) = Pair(data1,data2)</br>val/var name = Pair(data1,data2)</br>val/var (name1,name2,name3) = Triple(data1,data2,data3)val/var name = = Triple(data1,data2,data3)

fun main(args: Array<String>) {    val (day, month, year) = Triple(4, 9, 2017)    val ming = Triple(15, "中学", "小明")    val (desc, toll) = Pair("学费", 0)    val hong = Pair(13, "小学")    println("${year}年${month}月${day}日")    println("姓名:${ming.third},学历:${ming.second},年龄:${ming.first}")    println("小学${desc}是${toll}")    println("姓名:${hong.first},学历:${hong.second}")}
  • 可空类型

 代表变量没有值的情况

 如:用户资料的选填部分,如住址/性别等辅助信息

 形式:val/var 名称:类型?,无值则是null

fun main(args: Array<String>) {    var address: String? = "北京市海淀区"    var sex: Boolean? = null    if (address != null) {        println("您的地址是:${address}")    }    if (sex != null) {        println("你的性别是:${sex}")    }else {        println("当前没有设置性别")    }    sex = true    if (sex) {        println("是男生")    } else {        println("是女生")    }}
  • 类型安全

 类型一旦定义,其类型不可更改

 即:不能给变量一个类型不同的值

//定义为Int型var salary = 4000//不能更改为Double型salary = 4500.0
操作符
  • 数学操作符

 一般用于对于数之间的“+ - * / %”的操作

 赋值与数学操作符的组合“+= -+ *= /= %=”

var i = 10var j = 4i += jprintln("结果是:${i}")i -= jprintln("结果是:${i}")i *= jprintln("结果是:${i}")i /= jprintln("结果是:${i}")i %= jprintln("结果是:${i}")
  • 比较操作符

 两个常量或者变量进行比较,返回值为true或者false“> <  >= <=”

var x = 10var y = 11var z = x > yz = x >= yz = x < yz = x <= y

 返回值是true或者false

  • 逻辑操作符

 布尔值的组合,&&(与) ||(或) !(非)

//逻辑操作符var haveComputer = truevar haveAvailable = truevar isEighteen = falseif (haveComputer && haveAvailable || isEighteen) {    println("可以去上网")} else {    println("不可以去上网")}if (!haveComputer) {    println("没有电脑")} else {    println("拥有电脑")}
字符串和字符
  • 字符

 用Char类型来定义字符,一对单引号包括的值,为字符字面量

val aNum = '3'val aLetter = 'a'

 判断字符是否为数字或者字符

//判断是否是数字if (aNum.isDigit()) {    println("aNum是一个数字")}//判断是否是字母if (aLetter.isLetter()) {    println("aLetter是一个字母")}
  • 字符串

 字符串(String)是有序字符(Char)的集合

 包含在一对双引号中间的值,称之为字符串字面量

val course = "今天是周二"val num = "1234567"

 判断字符串是否为空:isEmpty(),是否不为空:isNotEmpty(),包含的字符数量:count()

//是否为空course.isEmpty()//是否不为空course.isNotEmpty()//包含多少个字符course.count()

 将字符串转换为字符数组:toCharArray():

//将course转换为字符数组,并循环打出每个字符for (letter in course.toCharArray()) {    println(letter)}

 字符串模版:可以把各种变量组合成一个动态的字符串,在双引号内可以通过${}在其中填入常量、变量、表达式等。

val eventTime = Triple(6, 1, 3)val company1 = "顺丰"val company2 = "菜鸟"val admin = "国家邮政局"val newsTitle = "${eventTime.first}月${eventTime.second}日," +        "${company1}大战${company2}正酣," +        "${eventTime.third}日星夜,${admin}紧急叫停"println(newsTitle)
原创粉丝点击