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 // Intprintln(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 = 4val 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])
// 输出 Volvoprintln(cars.size)
// 输出 4if ("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 + yfun main() {var result = myFunction(3, 5)println(result)
}// 8 (3 + 5)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/150854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

客服中心的客户关系管理核心功能

根据国外的调查,拥有客服中心的运营机构,可以保持85%左右的客户忠诚度,而接受过专业培训的客户中心可以将客户忠诚度提高到99%。客服中心作为客户关系管理的前沿,通过提供服务、实时沟通、搜集与分析客户信息、预测客户需求来提升…

数据结构与算法-生成树与最小生成树

生成树与最小生成树 🎈1.生成树与最小生成树🔭1.1生成树与最小生成树的概念🔭1.2最小生成树的生成准则🔭1.3两种最小生成树算法🏆1.3.1Kruskal算法🏆1.3.2Prim算法 🎈2.有向无环图及其应用&…

【如何学习Python自动化测试】—— 时间等待

3 、 时间等待 在做自动化测试时,难免会碰到一些问题,比如你在脚本中操作某个对象时, 页面还没有加载出来,你的操作语句已经被执行,从而导致脚本执行失败,针对这样的问题 webdriver 提供了等待操作&#xf…

virtuoso 后仿 ADE L error

ADE后仿时出现error ERROR (SFE-23): "input.scs" 299: The instance _57_D32_noxref is referencing an undefined model or subcircuit, parasitic_nwd. Either include the file containing the definition of parasitic_nwd, or define parasitic_nwd before run…

Java MVC亚马逊网站的仿制JSP+JavaBean+Servlet+DB

系统总体要求 1. 网站中必须包含用户登录,查看产品列表,增加产品信息,修改产品信息,和查看产品详细信息的功能;对于列表页面,要求要实现分页功能,产品数目不少于20条,每页8条记录 2…

Redis学习笔记15:基于spring data redis及lua脚本发送到redis服务器多久过期

在Redis服务器中,通过SCRIPT LOAD命令加载的脚本会被缓存,并且会一直保存在缓存中,直到服务器重启或者使用SCRIPT FLUSH名利手动清空缓存。 一个对springboot redis框架进行重写,支持lettuce、jedis、连接池、同时连接多个集群、多…

Frida 安装使用

Frida 使用 1:安装 查看安装版本 frida --version 16.0.2(这是我自己安装的版本,目前最新是16.1.17) 安装 pip install frida pip install frida-tools2:frida-server https://github.com/frida/frida/releases 下…

iTerm2+oh-my-zsh搭个Mac电脑上好用好看终端

根据苹果网站上介绍,bash是 macOS Mojave 及更早版本中的默认Shell,从 macOS Catalina 开始,zsh(Z shell) 是所有新建用户帐户的默认Shell。 1. 安装Oh my zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzs…

Java学习笔记43——函数式接口

函数式接口 函数式接口函数式接口概述函数式接口作为方法的参数函数式接口作为方法的返回值 常用的函数式接口Supplier接口Comsumer接口Predicate接口Function接口 函数式接口 函数式接口概述 有且仅有一个抽象方法的接口 是lambda表达式的前提 需要注意的是 默认方法不是抽…

选择java商城开发商需要注意哪些方面?

Java商城开发是一项庞大而复杂的任务,选择一家合适的开发商至关重要。那么,我们在选择Java商城开发商时,需要注意哪些方面呢? 1、专业经验 选择具有丰富经验的开发商是至关重要的。开发商应该拥有多年的Java开发经验,…

代码随想录算法训练营第13天|● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 ● 总结

239. 滑动窗口最大值 困难 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,…

【MATLAB源码-第82期】基于matlab的OFDM系统载波频移偏差(CFO)估计,对比三种不同的方法。

操作环境: MATLAB 2013b 1、算法描述 正交频分复用(OFDM)系统中的载波频率偏移(CFO)估计是一项关键技术,用于确保数据传输的准确性和效率。CFO通常由于振荡器频率不匹配和多普勒频移引起。不同的CFO估计…

DP1332E/DP1363F国产多协议NFC读写器芯片支持ISO15693/ISO18092

目录 ISO/IEC 15693与ISO/IEC 18092协议标准差异DP1363F与DP1332E对比共同点主要差异点 ISO/IEC 15693与ISO/IEC 18092协议标准差异 ISO/IEC 15693是用于近距离无线通信中的射频识别(RFID)技术的标准协议,它定义了与读写器之间的通信协议。这…

LeetCode热题100——图论

图论 1. 岛屿的数量2. 腐烂的橘子 1. 岛屿的数量 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆…

鸿蒙为什么使用typescript 作为开发语言 而不是 flutter 或者 kotlin

猜想如下 dev studio 是基于 idea 二次开发的 ,使用kotlin 应该是更合理 变成 jetbrain 全家桶, 但是 现在android 开发也是kotlin 是不是为了做分割 ,所以不使用kotlin flutter 是谷歌的 安卓也是谷歌的 所以不采用 typescript 是微软的…

力扣:168. Excel表列名称(Python3)

题目: 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 来源:力扣(LeetCode) 链接:力扣&…

达梦数据库如何查看索引和表的DDL

1)查看索引DDL,先查看索引的objectID,再查询该objectid的DDL SQL> select * from dba_objects where object_nameIDX_INTERFACE_DATA_SYNC_FLAG; LINEID OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_T…

微信、支付宝、携程等多款app任意文件读取漏洞

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、漏洞描述 微信、支付宝、小米浏览器、携程应用等国内主流软件均存…

C编译环境和预处理(非常详细,建议收藏)

C编译环境和预处理(非常详细,建议收藏) 一、程序的翻译环境和执行环境二、 详解编译链接2.1 翻译环境2.2 编译本身的几个阶段符号汇总、符号表、合并段表、符号表的合并和重定位分别是什么? 2.2 运行环境 三、预处理详解3.1 预定义…

斐波那契数列,剑指offer,力扣

目录 题目地址: 我们直接看题解吧: 解题方法: 难度分析: 审题目事例提示: 解题思路(动态规划): 代码实现: 补充说明: 代码(优化)&…