Koltin - 基础类型、运算符与表达式、流程控制、数组与集合

这篇博文是作者学习Kotlin的笔记,涵盖了预备知识、基础类型、运算符和表达式、流程控制及数组与集合等内容。Kotlin是强类型语言,支持函数式编程,其基础类型包括Int、Char、Boolean等,具有明确的类型转换规则。运算符如==、===、?.、?:等,提供了安全调用和Elvis运算符。流程控制包括if、when表达式以及for-in循环。对于数组与集合,Kotlin提供Array、List、Set和Map,区分可变与不可变集合。博文还讨论了Kotlin与Java集合框架的关系和用法。
摘要由CSDN通过智能技术生成

该系列的博文是自己学习Kotlin的学习笔记整理,以备忘与回顾。整理来源 - 疯狂Koltin讲义

Kotlin预备知识

1、kotlin 是一门强类型语言;

2、kotlin-stdlib.jar是Kotlin运行时环境

Kotlin可以自由调用Java的各种库,因此使用kotlin调用Android应用程序的Framework层开发应用程序甚至无序额外的学习,可以无缝的过渡到使用kotlin开发。

kotlinc (kotlin-jvm) -> Xxxx.class

kotlin-js -> js代码(前端或node.js代码都可以)

3、Kotlin程序与Java程序不同,Kotlin支持函数式编程,且在Kotlin语言中,函数也是一等公民。因此函数可以独立存在,即Kotlin程序只需要一个main函数作为程序入口,不需要将该main函数放在任何类中;

所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。

举例来说,下面代码中的print变量就是一个函数,可以作为另一个函数的参数。

var print = function(i){ console.log(i);};

  [1,2,3].forEach(print);

4、kotlinc(或kotlin-jvm)->XxxKt.class 或 Xxx.lass

kotlinxxxtlin文件

基础类型

1、与Java不同,Kotlin并不强制要求每条语句必须以分号结尾(前提是一行只有一条语句),如果一行有多条语句,则前面的语句需要使用分号表示结束。

2、kotlin中的[]不只可以访问数组,还可以访问List和Map。

3、var 变量 val 常量;

var | val 变量名[:类型] [=初始值]

由于存在类型推断,程序要么通过":类型"的形式显式指定该变量的类型,要么为该变量指定初始值 - kotlin编译器将会通过该初始值确定变量的类型,即var a:Int或var a=5,不能声明变量时既不指定变量的类型,也不指定变量初始值。

使用val声明的不可变变量其实相当于常量,意味着一旦初始化就不能再重新赋值。kotlin常量分为两种:

  • 局部范围的常量:允许在声明时不指定初始值,只要第一次使用之前指定初始值即可。

  • 类的常量属性:既可以在声明时指定初始值,也可以在类或结构体的构造器中指定初始值。

4、如果直接在Kotlin程序中定义变量、函数,kotlinc将会自动生成一个名为“文件名首字母大写+Kt”的类,并将变量转换为该类的静态的getter和setter方法,函数则转换为该类的静态方法。

5、四种整型:Byte/Short/Int/Long  不支持八进制

Kotlin的整型与Java的不同,Kotlin的整型是引用类型【大致相当于Java中的包装类】,都继承自Number类型。

Int -> int

Int? -> Integer 接收null值

比如:

var pm1 :Int = 200//相当于Java基本类型int

var pm2:Int = 200

pm1===pm2 true//基本类型比较,输出true  

var pm3:Int?  =200//相当于Java包装类型Integer

var pm4:Int? = 200

pm3===pm4  false//引用类型比较输出false

两种浮点型:Float和Double  十进制和科学计数形式

如果声明的变量初始值只是简单的赋值为浮点值,则kotlin自动判断该变量的类型为Double;

浮点型除以0.0会得到正无穷[正数/0.0]或负无穷大[负数/0.0]或非数[0.0/0.0 或 负数开方],整型除以0.0报错。

注意:正无穷大都相等,负无穷大都相等,非数不与任意值相等;

6、Kotlin中的Char型就是简简单单的字符型,不能直接当成整型使用;即Char型值不能赋值给整型变量,整型值也不能赋值给Char型变量;

7、与Java程序不同,Kotlin不支持取值范围小的数据类型隐式转换为取值范围大的类型

kotlin要求不同的整型的变量或值、Float与

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值