首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

转向Kotlin——基础知识

至于参数,与定义Kotlin变量的方式相同。如果函数有返回值,那么返回值类型在函数定义部分末尾指定,与函数定义部分用冒号(:)分隔。...1、数值类型 Kotlin提供的内置数据类型: 数据类型 字节数 Double 8 Float 4 Long 8 Int 8 Short 8 Byte 8 Kotlin代码: var a: Int...不过在Java中占字节数少的变量转为占字节数多的变量时,会自动进行转换。...在Kotlin中定义数组的方法有很多,使用arrayOf()函数定义可以存储任意值的数组;使用arrayOfNulls函数定义指定长度的数组数组元素中没有值);使用Array类的构造器指定数组长度和初始化数据的方式定义数组...中,for循环可以直接枚举集合中的元素,也可以按集合索引来枚举元素

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin:04-基本数据类型详细介绍

在上面的图中,我们能够清晰的看到,kotlin 的基本数据类型包括 数值、字符、字符串、布尔类型、数组。接下来,我们就一一了解这些类型。...2、获取字符串元素 字符串是由一个个的字符元素组成的,如果我们需要获取某个字符串中的元素有两种方式: 方式A:使用索引运算符访问 字符串中元素的索引 0 开始计数。...(1)、使用 arrayOf() 创建数组并初始化元素 使用该方式创建的数组可以通过 set 方法修改元素,但是不能增加元素!...0]) //打印0索引元素 } (2)、 arrayOfNulls() 创建指定大小的数组 使用该方式创建数组时需要指定数组元素个数以及元素类型,然后可以通过set 方法设置元素,但是元素个数不能超过设定的值...fun main(args: Array) { var arr2 = arrayOfNulls(5) //创建一个数组,该数组接收的数据类型为 Int,最多能放入5

1.7K30

第9章 文件IO操作、正则表达式与多线程第9章 文件IO操作、正则表达式与多线程

Charset = Charsets.UTF_8): Unit 覆盖写入text字符串到文件中 File.writeBytes(array: ByteArray): Unit 覆盖写入ByteArray字节数组...(array: ByteArray): Unit 在文件末尾追加写入ByteArray字节数组 9.1.1 读文件 readText : 获取文件全部内容字符串 我们如果简单读取一个文件,可以使用readText...我们如果希望直接操作文件的字节数组,可以使用readBytes 函数 //读取为bytes数组 val bytes: ByteArray = f.readBytes() println...可对象,所以这里我们使用了安全调用符号 ?. 。...本章小结 Kotlin 是一门工程实践性很强的语言,本章介绍的文件IO、正则表达式以及多线程等内容中,我们可以领会到 Kotlin 的基本原则:充分使用已有的 Java 生态库,在此基础之上进行更加简单实用的扩展

1.9K30

kotlin数据容器

Kotlin数组 Kotlin集合 Kotlin数组 数组是一种初始化时指定容器大小,不可以动态调整其大小的容器。元素按顺序存储在一串连续的内存段上。...val array = arrayOf(1, true, "2", JSONObject()) // 集合中的元素可以是任意类型 arrayOfNulls创建数组 创建一个指定大小的、所有元素都为数组...,但必须指定集合中的元素类型 val arrayOfNulls = arrayOfNulls(5) //创建一个指定大小的、所有元素都为数组 动态创建数组 用接受数组大小以及一个方法参数的...: 原生类型数组 解释 ByteArray 字节数组 ShortArray 短整型数组 IntArray 整型数组 LongArray 长整型数组 BooleanArray 布尔型数组 CharArray...,下标0开始 array.component1() … arr.component5()获取数组的前5个元素

6710

认识下 Kotlin 反射背后的男人:@Metadata

d1:存储了自定义格式的元数据,官方声称针对不同的类型格式不定,甚至可以为,研究发现目前采用 Protobuf 进行序列化存储。这些数据会被 Kotlin 反射读取,是反射的一个非常重要的数据来源。...此外,d1 中使用换行符 \n 来分隔,分开的结果与 d2 的元素一一对应。...这里还有一个小细节, d1 为什么是一个字符串数组而不是一个字符串,原因主要是字符串长度有限制,如果 d1 存储的内容超过了字符串长度的上限,就拆成多个字符串存储。...值得一提的是,d2 当中也存储了函数参数名 param,也正是这样,Kotlin 反射才可以在 Java 1.8 之前的字节码版本中获取函数参数名。...Java 反射 1.8 之后才可以在特定条件下访问函数的参数名。

3.3K31

开心档-软件开发入门之Ruby 数组(Array)

负值索引数组末尾开始计数(-1 是最后一个元素)。如果 index (或开始索引)超出范围,则返回 nil。...如果索引大于数组的当前容量,那么数组会自动增长。负值索引数组末尾开始计数。如果 length 为零则插入元素。如果在第二种或第三种形式中使用了 nil ,则从 self 删除元素。...14array.at(index) 返回索引为 index 的元素。一个负值索引 self 的末尾开始计数。如果索引超出范围则返回 nil。15array.clear 数组中移除所有的元素。...负值的 index 数组末尾开始计数。...48array.pop  array 中移除最后一个元素,并返回该元素。如果 array 为则返回 nil。49array.push(obj, ...) 把给定的 obj 附加到数组末尾

1.6K30

开心档-软件开发入门之Ruby 数组(Array)

数组的索引 0 开始,这与 C 或 Java 中一样。一个负数的索相对于数组末尾计数的,也就是说,索引为 -1 表示数组的最后一个元素,-2 表示数组中的倒数第二个元素,依此类推。...负值索引数组末尾开始计数(-1 是最后一个元素)。如果 index (或开始索引)超出范围,则返回 nil。...如果索引大于数组的当前容量,那么数组会自动增长。负值索引数组末尾开始计数。如果 length 为零则插入元素。如果在第二种或第三种形式中使用了 nil ,则从 self 删除元素。...负值的 index 数组末尾开始计数。...48 array.pop  array 中移除最后一个元素,并返回该元素。如果 array 为则返回 nil。 49 array.push(obj, ...) 把给定的 obj 附加到数组末尾

1.2K30

Kotlin学习日志(四)函数

1.1 与Java声明方式的区别 最常见的onCreate方法来看看Java和Kotlin的区别 Java代码: @Override public void onCreate(Bundle savedInstanceState...(6)Kotlin引入安全机制,如果某个变量允许为,就需要在变量类型后面加个问号“?”。...注意到尖括号内部制定了数组元素的类型,这正是泛型的写法“”。由“Array”声明而来的变量可称作泛型变量,至于等号后面的arrayOf*便是泛型函数。...//普通函数 fun setArrayNumber(array: Array) { var str: String = "数组元素一次排列" for...推出了扩展函数得概念,扩展函数允许开发者给系统类补写新的方法,而无须另外编写额外的工具类,比如系统自带的数组Array提供了求最大值的max方法,也提供了进行排序的sort方法,可以并未提供交换数组元素的方法

1.8K10

Kotlin 集合 查询,检测,截取等方法介绍

> 3 }) } //输出 one five random()随机 我们如果需要随机数组集合中抓取元素,那么就使用random函数。...false isNotEmpty:集合是否为null,如果为null 返回 false,不为返回true 两个方法的判断刚好是相反的 截取 Kotlin针对集合的参数提取,提供了一组定义好的扩展函数。...方便我们便捷的集合中获取想要的数据。 截取后的值将会存储在一个新的集合数组中。不会修改原数据集合。 Slice()切片 该函数返回具有给定索引的集合元素列表。..., GG] 后截取:[AA, AB, CC, DD, EE] 总结: **dropWhile **:从左往右开始截取,第一个不匹配Lambda等式的元素开始,截取到数组最后一个元素 dropLastWhile...partialWindows 包含集合末尾元素开始的较小的窗口。例如,如果请求三个元素的窗口,就不能为最后两个元素构建它们。

85430

给 Java 开发者的 Kotlin 快速上手教程(Kotlin for Java Developers)v0.1

相对Java来说,Kotlin在编写代码时有如下优势:代码简洁高效、函数式编程、指针安全、支持lambda表达式、流式API等。...在执行效率上,Kotlin和Java具有同样的理论速度(都是编译成JVM字节码)。...协变数组(Covariant arrays):你可以创建一个 string 类型的数组和一个 object 型的数组,然后把 string 数组分配给 object 数组。...Kotlin代码不仅可以编译为JVM字节码,还可以编译为JavaScript和Native代码 Kotlin Features Lambda 表达式 数据类 (Data classes) 函数字面量和内联函数...fun testArray1() { val asc = Array(5, { i -> (i * i).toString() }) } // Kotlin数组是不可变的(Java 的数组可变

1.1K30

Python0到100(七):Python列表介绍及运用

例如:A = [1,'xiaoWang','a', [2, 'b']] 列表索引是0开始的,我们可以通过下标索引的方式来访问列表中的值。...字符串是一种不可变数据类型,也就是说对字符串做拼接、重复、转换大小写、修剪空格等操作的时候会产生新的字符串,原来的字符串并没有发生任何改变。...通过for循环为列表添加元素。...'] print(items3) # ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'] 下面这种方式不仅代码简单优雅,而且性能也优于上面使用for循环和append方法向列表中追加元素的方式...可以简单跟大家交待下为什么生成式拥有更好的性能,那是因为Python解释器的字节码指令中有专门针对生成式的指令(LIST_APPEND指令);而for循环是通过方法调用(LOAD_METHOD和CALL_METHOD

11110

给 Java 开发者的 Kotlin 快速上手教程(Kotlin for Java Developers)v0.1

相对Java来说,Kotlin在编写代码时有如下优势:代码简洁高效、函数式编程、指针安全、支持lambda表达式、流式API等。...在执行效率上,Kotlin和Java具有同样的理论速度(都是编译成JVM字节码)。...协变数组(Covariant arrays):你可以创建一个 string 类型的数组和一个 object 型的数组,然后把 string 数组分配给 object 数组。...Kotlin代码不仅可以编译为JVM字节码,还可以编译为JavaScript和Native代码 Kotlin Features Lambda 表达式 数据类 (Data classes) 函数字面量和内联函数...fun testArray1() { val asc = Array(5, { i -> (i * i).toString() }) }// Kotlin数组是不可变的(Java 的数组可变;

1.5K30

Kotlin 1.2 的新增特性

其他语言特性 注解中的数组常量 Kotlin 1.2 开始,注解的数组参数可以使用新的数组常量语法而不是 arrayOf 函数来传递: 数组常量语法被限制为注释参数。...这里 MODE 的值是以下之一: disable (默认值)—— 以和 Kotlin 1.0 和 1.1 相同的方式生成字节码 enable —— 为构造函数调用生成类 Java 字节码。... Kotlin 1.2 开始,在平台类型的值上调用 x.equals(...) 会抛出 NPE(但 x == ... 时并不会)。...Kotlin 1.2 在调用点强制执行此检查,如果接收方为,则抛出异常。 要切换到旧行为,请将 fallback 标志 -Xno-receiver-assertions 传递给编译器。...JavaScript 后端 默认启用对类型化数组(TypedArrays)的支持 JS typed arrays 支持将 Kotlin 基本数组(如 IntArray, DoubleArray)转换为JavaScript

2.8K70

第1章 Kotlin是什么第1章 Kotlin是什么

让我们Hello World开始。与 C/C ++/Java 一样,Kotlin 程序的入口点是一个名为“main”的函数,它传递一个包含任何命令行参数的数组。...3.与Scala和Groovy一样 ,代码行末尾的分号是可选的。在大多数情况下, 编译器根据换行符就能够推断语句已经结束。 4.Kotlin中使用fun关键字声明函数(方法),充满乐趣的fun。...Kotlin中摒弃了检查异常。 2.基本类型和数组。Java的这个设计保留了字节码的底层细节,违反了“凡事皆为对象”原则。泛型无法包容基本类型就是一个经典的例子。...通常情况下,在JVM平台上语言源代码编译到JVM上执行的整体过程如下图所示 ? JVM语言编译执行过程.png 其中,运行在JVM上的字节码文件是不依赖于硬件和操作系统的二进制格式的文件。...其实这是针对Java/Scala/Kotlin/Groovy等的源代码到JVM字节码这一层是平台无关的。

1.3K21
领券