分类:
作者同类文章
X
版权声明:本文为博主原创文章,未经博主允许不得转载。
本篇文章我们将通过类比Java语法的方式学习Kotlin的基本语法和常用操作
基本类型
Java | Kotlin | 位宽 |
---|---|---|
double | Double | 64 |
float | Float | 32 |
long | Long | 64 |
int | Int | 32 |
short | Short | 16 |
byte | Byte | 8 |
注: char在Kotlin不是基本数据类型,是独立的数据类型
String字符串表示
- Java
String name = "Java";
String sex = "Man";
String link = "name is :" + name + ",sex is:" + sex;
- 1
- 2
- 3
- 1
- 2
- 3
- Kotlin
字符串可以包含模板表达式,即可求值的代码片段,并将其结果连接到字符串中。一个模板表达式由一个 $ 开始并包含另一个简单的名称
val name = "Kotlin"
val sex = "man"
val link = "name is $name,sex is: $sex"
- 1
- 2
- 3
- 1
- 2
- 3
打印操作
- Java
System.out.print("Java");
System.out.println("Java");
- 1
- 2
- 1
- 2
- Kotlin
print("Kotlin")
println("Kotlin")
- 1
- 2
- 1
- 2
换行操作
- Java
String text = "第一行\n第二行\n第三行\n";
- 1
- 1
- Kotlin
有两种类型的字符串字面量:
- 一种是可以带分割符的。跟Java一样
- 一种是不可以包含分割符但可以包含其它字符。 由三个引号包裹(“”“)
val text1 = "第一行\n第二行\n第三行\n";
val text = """
|第一行
|第二行
|第三行
""".trimMargin() //去除空格
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
常量和变量定义
- Java
final String s = "Java";
String name = "Java";
int num = 5;
- 1
- 2
- 3
- 1
- 2
- 3
- Kotlin
var 声明变量
val 声明常量
val s = "Java"
var name = "Kotlin"
var num = 5
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
声明静态常量、方法
- Java
static final String NAME = "name";
static final int SEX = 0;
static void Test() { }
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- Kotlin
声明静态常量或者方法时,都是使用如下方式声明
companion object {
internal val NAME = "name"
internal val SEX = 0
fun Test() { }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
条件表达式
if语句
- Java
if( a == b){}
if( a>=0 && a <=10){}
if( a>0 && a <10){}
- 1
- 2
- 3
- 1
- 2
- 3
- Kotlin
if( a== b){}
if( a in 0..10){} // 也可以按照Java写法 if( a>=0 && a <=10){}
if(a in 1 until 10) //也可以按照Java写法 if( a>0 && a <10){}
- 1
- 2
- 3
- 1
- 2
- 3
三元运算符
- Java
int num = a > b ? a :b;
- 1
- 1
- Kotlin
val num = if (a > b) a else b
- 1
- 1
case表达
- Java
String s;
switch(a){
case 0:
s = "a = 0";
break;
case 1:
s = "a = 1";
break;
default:
s = "default";
break;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- Kotlin
val s = when(a){
0 -> "a = 0"
1 -> "a = 1"
else -> "default"
}
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
for循环迭代操作
- Java
for(int i = 0; i <= 10; i++){}
for(int i = 0; i < 10; i++){}
for(int i = 10; i < 0; i--){}
for(int i = 0; i <= 10 ; i+=2){}
for(int i = 10; i < 0; i-=2){}
for (String s : listString) {}
for (Map.Entry<String, String> entry: map.entrySet()) {}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- Kotlin
在下面使用的操作使用倒了Kotlin自带的Ranges使用
- in 指定范围
- until 不包含
- downto 倒序
- step 指定步数跳跃
for(i in 0.. 10){}
for(i in 0 until 10){}
for(i in 10 downTo 0){}
for(i in 0.. 10 step 2){}
for(i in 10 downTo 0 step 2){}
for(item in listString){}
for ((key, value) in map) { }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
集合操作
- Java
List<String> listString = Arrays.asList("a","b","c");
listString.add("d");
Map<String,String> map = new HashMap<>();
map.put("a","1");
map.put("b","2");
map.put("c","3");
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- Kotlin
var listString = listOf("a","b","c")
listString.add("d")
var map = mapOf("a" to "1",
"b" to "2",
"c" to "3")
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
遍历集合和筛选操作
- Java
for (String s : listString){
System.out.println(s);
}
//筛选
for (String s: listString){
if(s.equals("a")){
System.out.println(s);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- Kotlin
listString.forEach {
println(it)
}
//筛选
listString.filter{ it.equals ("a") }
.forEach{
println(it)
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
声明方法
-
不带返回值方法
- Java
void Test(){ } void Test(int a, String b){ }
- 1
- 2
- 3
- 1
- 2
- 3
- Kotlin
fun Test(){} fun Test(a : Int, b : String) { }
- 1
- 2
- 3
- 1
- 2
- 3
-
带返回值方法
- Java
int Test() { return 0;} int Test(int a, int b){ if(a > b){ return a; } return b; }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- Kotlin
fun Test() :Int { return 0} fun Test(a :Int, b :Int) :Int{ if( a > b ){ } return b }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
构造方法
- Java
class Test{
public Test(){ }
public Test(int a, int b){ }
}
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- Kotlin
class Test {
constructor() {}
constructor(a: Int, b: Int) {}
}
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
或者这样写
class Test constructor(){ //constructor 可省略
constructor(a: Int, b: Int) : this() {}
}
- 1
- 2
- 3
- 1
- 2
- 3
生成get跟set方法
- Java
class Test{
String a;
int b;
public Test(String a, int b){
this.a = a;
this.b = b;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- Kotlin
只需一行代码
data class Test(val a: String, val b: Int){ }
- 1
- 1
看完上面的文章,我们可以发现Kotlin语法比Java更加的直观和便捷,但是还是需要一段时间来适应Kotlin的语法习惯。
-
顶
- 0
-
踩
- 0