目录

序 

关于Kotlin

在IDEA中使用Kotlin

主要内容 

 运行截图

序 

全都写在程序里面了,可以直接运行,各位直接全部复制走慢慢体验(很详细)

对了,里面的函数名为中文,方便各位查找所需的部分喵,如果你感觉有用就留下一个小小的赞

关于Kotlin

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。

现代、简洁、安全的编程语言

易于上手,因此您可以立即创建功能强大的应用程序。

它拥有领先许多语言的语法(众多语法糖),将带给你无与伦比的开发体验(就像py一样好用)

-》这里是官网-《

柯特林编程语言 (kotlinlang.org)

在IDEA中使用Kotlin

文件-》新建-》模板

新建模板-》随便输入名称-》语言选择Java-》创建

 

找到新建的文件夹重点src-》右击鼠标-》新建-》Kotlin类/文件

 随便起个名字-》选择包含Kotlin文件的所有模块-》确定

 复制以下代码-》右击鼠标-》运行

fun main(args: Array)

{

println("Hello world!")

}

主要内容 

创建对象 数据类型及基本数据转换 数据比较 字符串 数组 可变参数      函数可省略返回值类型 方法不能省略返回值类型 空值检查 对象类型检测使用  对象类型转换使用 区间表达式 判断结构

import java.text.SimpleDateFormat

import java.util.*

import kotlin.reflect.typeOf

class Kotlin1() {

fun 创建对象() {

println("我是一个函数,我被调用时,就创建成功了一个对象(Kotlin1)")

}

//Kotlin 中没有基础数据类型,只有封装的数字类型,你每定义的一个变量,其实 Kotlin 帮你封装了一个对象,

// 这样可以保证不会出现空指针。数字类型也一样,所以在比较两个数字的时候,就有比较数据大小和比较两个对象是否相同的区别了。

//Kotlin 的《-基本数值类型-》包括 Byte、Short、Int、Long、Float、Double。

fun 数据类型及基本数据转换(): Unit {

//不用写类型,自动推断,简直就像python!

val Int_ = 100

//和 Java 一样,String 是不可变的,都是基于字符(char)数组,在字符串那里再说

val String_ = "我是字符串类型"

val Double_ = 1.1

//不用写类型,指定后缀

val Float_ = 200F

val Long_ = 300L

//指定类型

val Double_1: Double = 400.0

val String_1: String = "我是字符串类型"

//Java 不一样,Kotlin 中的 Char 不能直接和数字操作,Char 必需是单引号 ' 包含起来的。比如普通字符 '3'

//对了Java中直接将Char类型赋值为数字会产生未知无法显示的字符,其实是和C语言一样是“机器直链字符”,不过好像失传了

val Char_: Char = '3'

//你可以使用下划线使数字常量更易读

//wc,太先进了!,这样易于查数,妈妈再也不用担心我查错了

val Long_2 = 1_000_000_000_000_000

println(Int_)

println(String_)

println(Double_)

println(Float_)

println(Long_)

println(Double_1)

println(String_1)

println(Long_2)

println(Char_)

//数据类型的转化

//每种数据类型都有下面的这些方法,可以转化为其它的类型:

//

//toByte(): Byte

//toShort(): Short

//toInt(): Int

//toLong(): Long

//toFloat(): Float

//toDouble(): Double

//toChar(): Char

}

//在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。

//wc太牛逼了,再也不用想java一样比较对象时还有重写 equals与hashcode方法了!!

fun 数据比较(a: Int, b: Int): Unit {

if (a === b) {

println("地址相同")

} else {

println("地址不相同")

}

if (a == b) {

println("值相同")

} else {

println("值不相同")

}

}

fun 字符串(): Unit {

//和Java C#一样字符串类型 也是基于数组实现的,都为不可变类型

// 不过!!他的字符串竟然可以直接用[]取值与迭代!!!逆天和python一样

val testString = "abcdefg"

for (char_ in testString) {

println(char_)

}

//祖传取值法

println(testString[0])

//好用的”“”引号(和python,C# 一样就Java没有,哈哈)

val text = """

|多行字符串

|产生

|多行字符串

|输出完成OK

""".trimMargin("|") // 删除每一行的前置空格(用符号"|"作为分割符,其他的也可以奥)

println(text)

//插值字符串或字符串模板

// (和C#一样奥)

val s = "我们是Kotlin爱好者"

val str = "$s 长度为 ${s.length}"

// 求值结果为 "我们是Kotlin爱好者 长度为 6"

println(str)

//当你需要转义时

val price = """

${'$'}9.99

"""

println(price)

// 求值结果为 $9.99

//

}

fun 数组(): Unit {

//数组是基于类Array实现的,有ByteArray, ShortArray, IntArray,

// 用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Java中的Array一样:

//数组的创建与访问

//方法1 函数式

val a = arrayOf(1, 2, 3)

println(a[0])

// 输出结果:1

val b = charArrayOf('a', 'b', 'c')

for (char_ in b) {

println(char_)

}

//输出a,b,c,d

//方法2 工厂式

//第一个参数为数组的长度

//初始化一个长度为3的数组

val c = Array(3, { i -> i })

//源码是这样说明的: 创建一个具有指定size的新数组,其中每个元素通过调用指定的init函数来计算。

//从第一个元素开始依次为每个数组元素调用函数init 。它应该返回给定索引的数组元素的值,听起来好牛逼!

val d = Array(4, { i -> (i * 2 + 1) })

println(d[3]) // 输出结果:7,因为进行了3*2+1的运算

}

//使用vararg关键字,效果相当于穿了一个数组过来

fun 可变参数(vararg res: Int) {

for (r in res) {

println(r)

}

}

fun 函数可省略返回值类型(a: Int, b: Int) = a + b

public fun 方法不能省略返回值类型(a: Int, b: Int): Int = a + b // public 方法则必须明确写出返回类型

fun 空值检查(age: String?): Unit {

//和C#一样的!

//类型后面加?表示可为空

println(age)

}

//和java中的instanceof一样

fun 对象类型检测使用is(object1: Any, object2: Any): Unit {

if (object1 is String) {

println("参数1是字符串类型")

println()

} else {

println("参数1不是字符串类型")

}

if (object2 is String) {

println("参数2是字符串类型")

} else {

println("参数2不是字符串类型")

}

}

//as运算符用于执行引用类型的显示类型转换,如果类型与指定类型相符,就会转换成功,如果类型不兼容,使用as?就会返回null

//我不太会玩,略....

fun 对象类型转换使用as(String1: String, Int2: Int): Unit {

println(String1 as? Int)

println(Int2)

println(String1)

}

fun 区间表达式(): Unit {

for (i1 in 1..4)

print(i1)

// 输出“1234”

for (i2 in 4..1)

print(i2)

// 什么都不输出

val i3 = 10

if (i3 in 1..10) {

// 等同于 1 <= i3 && i3 <= 10

println(i3)

}

// 使用 step 指定步长

for (i4 in 1..4 step 2)

print(i4)

// 输出“13”

for (i4 in 4 downTo 1 step 2)

print(i4)

// 输出“42”

// 使用 until 函数排除结束元素

for (i in 1 until 10) {

println(i)

// i in [1, 10) 排除了 10

}

}

fun 判断结构(): Unit {

val arr = intArrayOf(1, 2, 3, 4)

// 使用 else

val max: Int

if (arr[0] > arr[1]) {

max = arr[0]

} else {

max = arr[1]

}

println("最大值为${max}")

// 作为表达式

//相当于java,C#的3目表达式同时Kotlin中没有3目表达式

val max1 = if (arr[0] > arr[1]) arr[0] else arr[1]

println("最大值为${max1}")

/*使用区间

使用 in 运算符来检测某个数字是否在指定区间内,区间格式为 x..y :*/

val temp:Int=2

if (temp in 1..10)

println("${temp}在区间内")

/*when的使用

相当于其他语言的switch

else相当于java的default

*/

val x=3

when (x)

{

1 -> print("x == 1")

2 -> print("x == 2")

else -> { // 注意这个块

print("x 不是 1 ,也不是 2")

}

}

//与区间表达式连用

when(x)

{

in 1..3 -> println("${x}在1到3之间")

else-> println("${x}不在1到3区间")

}

//还可以使用!in

when(x)

{

!in 1..3 -> println("${x}不在在1到3之间")

else-> println("${x}到我们这里了")

}

//还可以判断类型

val name="张三"

val temp1= when(name) {

//如果此字符串以指定的前缀开头,则返回true 。

is String -> name.startsWith("张")

else -> false

}

println("${name}是${temp1}开头的")

//当when没有参数时,也可以取代if else

// 判断集合中的元素是否存在

//定义一个集合

val items = setOf("小米", "华为", "苹果")

when {

"小米" in items -> println("我是小米呀,咯")

"华为" in items -> println("国货之光 呀")

}

}

fun 获取当前时间():String{

return SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(Date()).toString()

}

}

测试代码(运行代码)在下面直接复制到上面的代码的下面即可喵

不复制的话程序是不能运行的喵

//主函数程序入口,main(args:Array) fun main(args: Array) {     val Div1 = "******************"     println(Div1)     //可以直接调用类,竟然不用实例化!!简直就像python,好爱呀!!!     Kotlin1().创建对象()     println(Div1)     Kotlin1().数据类型及基本数据转换()     println(Div1)     Kotlin1().数据比较(1, 1)     println(Div1)     Kotlin1().字符串()     println(Div1)     Kotlin1().数组()     println(Div1)     Kotlin1().可变参数(1, 2, 3, 4, 5, 7)     println(Div1)     println(Kotlin1().函数可省略返回值类型(1, 2))     println(Div1)     println(Kotlin1().方法不能省略返回值类型(1, 2))     println(Div1)     val a = null     Kotlin1().空值检查(a);     println(Div1)     Kotlin1().对象类型检测使用is(1, "是充满");     println(Div1)     Kotlin1().对象类型转换使用as("我们使用as", 521314)     println(Div1)     Kotlin1().区间表达式()     println(Div1)     Kotlin1().判断结构()     println(Div1)     println("当前时间为:${Kotlin1().获取当前时间()} 早点休息喵")     println(Div1) }  

 运行截图

 

未完待续.....

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: