Kotlin------数据类型和语法
来源:互联网 发布:淘宝开店店铺名字 编辑:程序博客网 时间:2024/05/17 07:39
今天简单的来介绍Kotlin的基本语法。编程语言大多相通的,会基础学起来都很快,理论都一样,实现的代码语言不一样而已。
数值类型
Kotlin 处理数值的方法和 java 很相似,但不是完全一样。比如,不存在隐式转换数值的精度,并且在字面上有一些小小的不同。
Kotlin的数值类型包括
主要是以下几种字面值常量:
- 十进制数:123
- 长整型要加L:123L
- 十六进制数:0x0f
- 二进制数:0b00001011
- Kotlin不支持八进制数
- 双精度浮点数(Double):123.5 、 123.5e10
- 单精度浮点数(Float)要加f或F:123.5f
布尔值
关键字Boolean,只有true和false两种取值,和Java一样可以使用&&、||、!进行与或非操作。
字符
关键字Char,和Java中char基本用法差别不大。
var useChar: Char = 'c'
数组
关键字Array,Kotlin中数组的使用和Java差别挺大,比如我要创建数组,就得使用arrayOf
//使用arrayOf简单创建数组var students: Array<String> = arrayOf("One", "Tow", "Three")var studentNums = arrayOf(1, 2, 3)
使用arrayOfNulls可以创建一个指定长度,元素内容为空的数组
//创一个长度为10,元素内容皆为null的数组var emptyArray = arrayOfNulls<String>(10)
Kotlin对一些基础类型定义数组会有拆装箱的开销,所以也可以使用自身封装好的一些API进行创建数组,以降低开销
//创建一个int数组,避免封箱装箱操作var intArray = intArrayOf(1, 2, 3)
Kotlin数组还支持使用闭包进行初始化,就像下面这样
//使用闭包初始化一个Array<String>,数组内容为["0", "1", "4", "9", "16"]var asc = Array(5, { i -> (i * i).toString() })
字符串
关键字String,用法和Java差别不大。字符串是不可变的。
字符串的元素——字符可以使用索引运算符访问: s[i]
。 可以用 for 循环迭代字符串:
var useString: String = "I am a boy"var firstChar: Char = useString[0] //相当于Java的String.charAt(0)for (c in useString) { println(c)//遍历}
定义变量
Kotlin的变量分为可变和不可变,和Java中是否对变量声明final一样,它定义一个变量的语法如下:
格式: 可变类型 变量名:数据类型
- 可变类型分为var、val两种,分别代表可变、不可变;
- 数据类型包括Kotlin内置的数据类型以及自定义类deng ;
- 定义变量时需要明确数据类型;
var,val可以简单理解为:
var
是可写的,在它生命周期中可以被多次赋值;而
val
是只读的,仅能一次赋值,后面就不能被重新赋值。
/***Kotlin版代码***///定义可变变量var id: Int = 1 //var name: String = "字符串"//定义不可变变量val useVal: Int = 1000/***Java版代码***/int id = 1;String name = "字符串";final int useFinal = 1000;
Kotlin支持类型推到的,在Kotlin中大部分情况你不需要说明你使用对象的类型,编译器可以直接推断出它的类型。
val str = "abc" println(str) println(str is String) println(str::class) println(str::class.java)// abc// true// class java.lang.String (Kotlin reflection is not available)// class java.lang.String val d = Date() println(d) println(d is Date) println(d::class) println(d::class.java)// Fri Jun 09 00:06:33 CST 2017// true// class java.util.Date (Kotlin reflection is not available)// class java.util.Date val bool = true println(bool) println(bool::class) println(bool::class.java)// true// boolean (Kotlin reflection is not available)// boolean val array = arrayOf(1,2,3) println(array) println(array is Array) println(array::class) println(array::class.java)// [Ljava.lang.Integer;@7b5eadd8// true// class [Ljava.lang.Integer; (Kotlin reflection is not available)// class [Ljava.lang.Integer;
阅读全文
0 0
- Kotlin------数据类型和语法
- Kotlin语法和使用
- kotlin 语法基础-平台提供的数据类型
- Python数据类型和语法
- Kotlin数据类型
- Kotlin语法
- Kotlin 语法
- Kotlin 语法
- Kotlin语法
- Kotlin语法(五)-返回和跳转
- Kotlin语法(六)-类和继承
- Kotlin语法(七)-属性和字段
- Kotlin属性和字段与基本语法
- PHP基本语法和数据类型
- Kotlin语法(十五)-对象表达式和声明
- Kotlin语法(十八)-高阶函数和Lambda表达式
- Kotlin语法(八)-方法和lambda表达式
- kotlin 学习记录 基本语法 (4 类和继承)
- 高并发的核心技术-幂等的实现方案
- 页面间跳转以及页面和servlet之间的路径问题
- 数据分析(1):Numpy库与应用
- 开篇
- tensorflow笔记(五)之MNIST手写识别系列二
- Kotlin------数据类型和语法
- WOJ1041-Magic Forest
- Asp.Net Core-添加用户
- 悲观锁、乐观锁(occ)的浅析
- 实现 QQ JS SDK 第三方登陆
- Cannot resolve symbol 'log' Idea 解决方法
- 图片压缩
- 30 多年的软件经验,总结出 10 个编写出更好代码的技巧(精品转载)
- eclipse 快捷键