一、基本语法
1、1 定义变量
-
在Kotlin中 数据类型要放在变量后面,并且用冒号(:)分割
-
定义变量用var,常量用val
-
在kotlin中,数据类型都以大写字母开头
-
在定义变量时未进行初始化,必须指定数据类型,在定义变量时进行初始化, 可以不指定数据类型
var n: Int = 30; //定义变量
var ok: Int; //定义一个变量, 没有进行初始化
val m: Int = 20; //定义一个常量 不需要设置m
ok = 40; // 对变量赋值
// m = 40; 编译出错 var cannot be reassigned
var k = 100; //自动推导变量k的数据
1、2 定义方法
- 1、必须包含fun关键字,函数名
- 2、如果函数有返回值,返回值类型在函数定义部门末尾指定,与函数用(:)分开
- 3、如果没有返回值,可以返回Unit,也可以什么都不返回
fun add(m : Int ,n : Int):Int
{
return m + n
}
fun process(m: Int):Unit
{
print(m)
}
1、3 注解的使用
fun zhushi()
{
//单行注释
/*
块注释
*/
/**
hello
/* World*/
这是一个嵌套注释
*/
}
二、基本数据类型
2、1数据类型
var price: Double = 12.4
var flag: Boolean = true
var v1: Int = 100
var v2: Double = 20.2
var m = 20
var n: Byte = 20
// m = n 编译报错 Type mismatch 无法将byte转换为int
var x : Long = 20
val value : Short = 20
Kt 数据类型之间的转换
/**
Kt数据类型之间的转换
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()
*/
m = n.toInt();
x = value.toLong();
2、2 字符类型
/**
1、Kt中字符不能看作是数字
2、字符用单引号
*/
var c : Char = 'h'
/**
Kt支持反斜杠(\)转义符
\t : 制表符
\b : 退格符
\n : 换行符
\r : 回车符
\' : 单引号
\" : 双引号
\\ : 反斜杠
*/
}
fun decimalDigitVale(c : Char) : Int
{
if( c !in '0' ..'9'){
throw IllegalArgumentException("Out of range")
}
//将指定字符转化为对应的ASCII 然后减去0对应的ASCII
return c.toInt() - '0'.toInt();
}
2、3 Boolean类型
fun testBool()
{
var flag1 : Boolean = true
var flag2 : Boolean = false;
print( !flag2) //进行逻辑非 操作
print( flag1 || flag2) //进行逻辑或 操作
print(flag1 && flag2) //进行逻辑与 操作
}
2、4 数组
// 1、使用arrayOf函数定义可以存储任意值的数组
var arr1 = arrayOf(1,2,3,'a')
print(arr1[3])
arr1[2] = 'b' //对数组元素赋值
print(arr1[2])
//2、使用arrayOfNulls函数定义指定长度的空数组(数组元素中没有值)
var arr2 = arrayOfNulls<Int>(10)
print("arr2的长度:"+arr2.size)
//3、使用Array类的构造器指定数组长度和初始化数据的方式定义数组
//使用Array类的构造器定义数组 其中第二个参数是指初始化每一个元素的值
val arr3 = Array(10,{i -> (i * i).toString()})
//4、使用intArrayOf,shortArrayOf等函数定义指定类型的数组,并初始化
var arr4 : IntArray = intArrayOf(20,30,40,50)
print("arr4[2] = " + arr4[2])
2、5 字符串
在Kt中 使用String表示字符串类型,有两类字符串
-》 普通字符串 可以在字符串中加上转义符,如 \n ,会让转义符后面的字符串换到下一行,这种字符串需要放在双引号中
-》 保留原始格式的字符串,不能使用字符串,如果字符串中带有格式,如换行,直接写在字符串中,这种字符串需要放在3个引号对中
//第一类字符串
var s1 = " hello \n world"
val s2 = "你好 \n 世界"
println(s1)
println(s2)
//第二种字符串 保留原有格式
var s3 = """"
Hello
World
I LOVE U
"""
println(s3)
2、6 字符串模板
字符串模版: 在字符串中添加若干个占位符,内容会在后期指定
模板使用美元符号($)设置,如"i = i " 中 的 i"中的 i"中的i就是一个占位符,其中$后面的i是变量,随着i的变化,"i = $i"中的值也随着变化
val i = 10
val s1 = "i = $i"
println(s1)
var s2 = "abc"
val str = "$s2 的长度是 ${ s2.length}"
println(str)