当前位置: 首页 > article >正文

Kotlin--1.基础语法

目录

一.概念

 二.基本语法

1.入门案例

2.变量声明

3.数据类型

 4.字符串

(1)访问字符串

(2)字符串长度

(3)字符串函数

(4)比较字符串

(5)在字符串中查找字符串

(6)字符串模板

5.if-else

6.when

7.数组

8.范围

三.函数

1.实例

2.多个参数

3.返回值


一.概念

Kotlin 是一种现代化的静态类型编程语言,可在 Java 虚拟机(JVM)上运行。它由 JetBrains 开发,旨在提供更简洁、更安全和更高效的编程体验。Kotlin 具有与 Java 互操作性,并且大多数现有的 Java 代码可以无缝地迁移到 Kotlin 中。

Kotlin 具备许多特性,如可空类型扩展函数数据类Lambda 表达式等,这些特性使得代码编写更加简洁和易读。Kotlin 还支持面向对象和函数式编程范式,能够满足不同编程风格的需求。

Kotlin 在 Android 开发中也得到了广泛的应用。它被 Google 官方列为 Android 开发的官方语言,并且通过 Kotlin 的一些特性和语法糖,可以编写更简洁、更安全的 Android 应用程序。

 二.基本语法

1.入门案例

    创建了一个名为 Main.kt 的 Kotlin 文件

fun main() {
  println("Hello World")
}

idea直接右键运行

2.变量声明

var variableName = value
val variableName = value

var  val 的区别在于用 var 关键字可以更改/修改,而 val 变量不能

与许多其他编程语言不同,Kotlin 中的变量不需要用指定的 type 声明(如"String"表示文本或"Int"表示数字,如果你熟悉的话)

var name: String = "John" // String
val birthyear: Int = 1975 // Int

println(name)
println(birthyear)

3.数据类型

val myNum = 5             // Int
val myDoubleNum = 5.99    // Double
val myLetter = 'D'        // Char
val myBoolean = true      // Boolean
val myText = "Hello"      // String
val myNum: Int = 5                // Int
val myDoubleNum: Double = 5.99    // Double
val myLetter: Char = 'D'          // Char
val myBoolean: Boolean = true     // Boolean
val myText: String = "Hello"      // String
val myNum: Byte = 100           //Byte
val myNum: Short = 5000         //Short
val myNum: Long = 15000000000L   //Long

 4.字符串

var name: String
name = "John"
println(name)

(1)访问字符串

要访问字符串的字符(元素),您必须参考方括号内的索引号

字符串索引从0开始。在下面的例子中,我们访问txt中的第一个和第三个元素:

var txt = "Hello World"
println(txt[0]) // first element (H)
println(txt[2]) // third element (l)

(2)字符串长度

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
println("The length of the txt string is: " + txt.length)

(3)字符串函数

var txt = "Hello World"
println(txt.toUpperCase())   // 输出 "HELLO WORLD"
println(txt.toLowerCase())   // 输出 "hello world"

(4)比较字符串

compareTo(string) 函数比较两个字符串,如果相等则返回 0

var txt1 = "Hello World"
var txt2 = "Hello World"
println(txt1.compareTo(txt2))  // Outputs 0 (they are equal)

(5)在字符串中查找字符串

indexOf() 函数返回指定文本在字符串(包括空格)中第一次出现的index(位置) ):

var txt = "Please locate where 'locate' occurs!"
println(txt.indexOf("locate"))  // 输出 7

您还可以使用 plus() 函数来连接两个字符串:

var firstName = "John "
var lastName = "Doe"
println(firstName.plus(lastName))

(6)字符串模板

var firstName = "John"
var lastName = "Doe"
println("My name is $firstName $lastName")

5.if-else

  if-else和java中的一样

6.when

val day = 4

val result = when (day) {
  1 -> "Monday"
  2 -> "Tuesday"
  3 -> "Wednesday"
  4 -> "Thursday"
  5 -> "Friday"
  6 -> "Saturday"
  7 -> "Sunday"
  else -> "Invalid day."
}
println(result)

// 输出 "Thursday" (day 4)
  
    /**
     * 满足任何一个即可
     */
    when(flag){
        1,2,4 -> println("ok")
        10,12,31-> println("yes")
        else-> println("error")
    }

7.数组

要创建一个数组,请使用 arrayOf() 函数,并将值放在其中的逗号分隔列表中:

val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
println(cars[0])
// 输出 Volvo

println(cars.size)
// 输出 4

if ("Volvo" in cars) {
  println("It exists!")
} else {
  println("It does not exist.")
}

for (x in cars) {
  println(x)
}

8.范围

for (chars in 'a'..'x') {
  println(chars)
}

for (nums in 5..15) {
  println(nums)
}

三.函数

1.实例

创建一个名为 "myFunction" 的函数,它应该输出一些文本:

fun myFunction() {
  println("I just got executed!")
}
fun main() {
  myFunction() // 调用函数
}

// 输出 "I just got executed!"

2.多个参数

fun myFunction(fname: String, age: Int) {
  println(fname + " is " + age)
}

fun main() {
  myFunction("John", 35)
  myFunction("Jane", 32)
  myFunction("George", 15)
}

// John is 35
// Jane is 32
// George is 15

3.返回值

fun myFunction(x: Int): Int {
  return (x + 5)
}

fun main() {
  var result = myFunction(3)
  println(result)
}

// 8 (3 + 5)

返回值还有一个更短的语法。 您可以使用 = 运算符代替 return 而无需指定返回类型。 Kotlin 足够聪明,可以自动找出它是什么:

fun myFunction(x: Int, y: Int) = x + y

fun main() {
  var result = myFunction(3, 5)
  println(result)
}

// 8 (3 + 5)


http://www.kler.cn/a/132862.html

相关文章:

  • 241113.学习日志——[CSDIY] [ByteDance] 后端训练营 [02]
  • Java:从诞生到未来的编程语言进化史与应用前景
  • 计算机网络在线测试-概述
  • 结构化需求分析与设计
  • linux笔记(防火墙)
  • 校园二手交易网站毕业设计基于SpringBootSSM框架
  • 在国内购买GPT服务前的一定要注意!!!
  • git基础命令
  • 【微信公众号】一、获取 access_token
  • .Net(C#)常用转换byte转uint32、byte转float等
  • 使用新版Visual Studio编译老项目部分报错处理
  • ChatGpt3.5已经应用了一段时间,分享一些自己的使用心得.
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • 如何快速本地搭建悟空CRM结合内网穿透工具高效远程办公
  • 电磁场与电磁波part4--时变电磁场
  • 大师学SwiftUI第18章Part1 - 图片选择器和相机
  • 【Linux】Alibaba Cloud Linux 3 安装 PHP8.1
  • 挖掘PostgreSQL事务的“中间态”----更加严谨的数据一致性?
  • 鼎盛合 | 宠物智能投食机方案设计开发
  • 基于STC12C5A60S2系列1T 8051单片的IIC总线器件模数芯片PCF8591实现模数转换应用
  • 【C++函数的进化】函数指针,模板,仿函数,lambda表达式
  • 【开源】基于JAVA的校园失物招领管理系统
  • 简单的python爬虫工具,B站视频爬虫
  • 高校教师资格证备考
  • 综述:目标检测二十年(机翻版)(未完
  • 读取PDF中指定数据写入EXCEL文件