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

Kotlin型 ① ( 型类 | 型参数 | 型函数 | 多型参数 | 型类型约束 )

文章目录 一、型类 二、型参数 三、型函数 四、多型参数 五、型类型约束 一、型类 ---- 定义一个 型类 , 将 型参数 T 放在 尖括号 中 , 该型参数放在 类名后...---- 函数 的 参数 或 返回值 类型为 型类型 , 则该函数称为 型函数 ; 代码示例 : 该代码中 , 型函数 logT 的 参数 和 返回值 都是 T 型参数 类型 ; class...---- 型函数 中 如果涉及到 匿名函数 参数 , 匿名函数 的 参数返回值 都是型 的话 , 在该型函数 中可能需要使用多个型 , 使用不同的字母表示不同的型 ; 如果函数中 引入了新的型类型...R 的类型是 Boolean 类型 ; 3.14 true 五、型类型约束 ---- 在 型类 , 型函数 中 , 使用型前 , 需要声明 型参数 : 型类 型参数 声明 : 如果类中...引入了新的型类型 , 需要在 class 关键字 和 主构造函数 之前 , 使用 尖括号 注明 ; class Student(_item: T) { } 型函数 型参数 声明 :

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

Kotlin型总结 ★ ( 型类 | 型参数 | 型函数 | 多型参数 | 型类型约束 | 可变参数结合型 | out 协变 | in 逆变 | reified 检查型参数类型 )

文章目录 一、型类 二、型参数 三、型函数 四、多型参数 五、型类型约束 六、可变参数 vararg 关键字与型结合使用 七、使用 [] 运算符获取指定可变参数对象 八、型 out 协变...---- 函数 的 参数 或 返回值 类型为 型类型 , 则该函数称为 型函数 ; 代码示例 : 该代码中 , 型函数 logT 的 参数 和 返回值 都是 T 型参数 类型 ; class...---- 型函数 中 如果涉及到 匿名函数 参数 , 匿名函数 的 参数返回值 都是型 的话 , 在该型函数 中可能需要使用多个型 , 使用不同的字母表示不同的型 ; 如果函数中 引入了新的型类型...R 的类型是 Boolean 类型 ; 3.14 true 五、型类型约束 ---- 在 型类 , 型函数 中 , 使用型前 , 需要声明 型参数 : 型类 型参数 声明 : 如果类中...在 Java 中 , 运行时 不知道 型参数 的 具体类型 ; 在 Kotlin 中可以 通过 reified 关键字检查 型参数类型 ; Java 中如果想要知道 型参数 具体类型 , 通过常规的方法无法实现

3.6K10

Kotlin 型详解

最近一段时间在网上发了一套 Kotlin 的入门视频,涵盖了基础语法、面向对象、高阶函数、DSL、协程等比较有特色的知识点,不过有朋友提出了疑问:这门课为什么不专门讲讲型、反射和注解呢?...我最早听到这个问题的时候,反应比较懵逼,因为我居然没有感觉到 Kotlin 的反射、型特别是注解有专门学习的必要,因为他们跟 Java 实在是太像了。...所以我想说的是,型这东西,只要你对 Java 型有一定的认识,Kotlin型基本可以直接用。那我们这篇文章要干嘛呢?只是做一个简单的介绍啦,都很好理解的。 1....fun getResult(): R{        ...    } } Java/Kotlin型实现采用了类型擦除的方式,这与 C# 的实现不同,后者是真·型,前者是伪·型。...下面是输出的结果: System.String 那伪·型呢?如果同样的代码放到 Java 或者 Kotlin 当中,结果会怎样呢?

1.1K20

TypeScript中型及型函数型类、型接口,型约束,一文读懂

型的定义(generic type 或者 generics) 型是TypeScript语言中的一种特性。 是程序设计语言的一种特性。型是一种参数化类型。 ...在使用过程中,型操作的数据类型会根据传入的类型实参来确定 型可以用在 类、接口、方法中,分别被称为 型类、型接口、型方法。...型类和型方法同时具备 通用性、类型安全和性能 ,是非型类和非型方法无法具备的 优势:高性能的变成方式、达到代码复用、提高代码通用性、 型使用的是类型参数(变量),它是一种特殊的变量,代表的是类型而不是值...型函数的定义 function 函数名(参数1:T,...,参数n:类型):返回类型 { //函数体 } function 函数名(参数1:T,......但是有些情况下,函数需要处理的数据有一定的约束,比如有一个型函数需要访问型参数T的length属性,并加1。基于这种需求,必须对型参数T进行约束,也就是型约束。

1.9K30

kotlin--

kotlin作为一种高级语言,也提供了型,它的型比Java更为灵活 一、型类 1.定义型类 定义型类和Java差不多 class Magic(_item: T) { var subOject..., 15)).subOject) println(Magic(Dog(15)).subOject) } 结果: Boy(name=danny, age=15) Dog(age=15) 二、型函数...1.如果想要对传递的型作约束,可以指定型的父类 //指定父类 class Magic(_item: T) { var subOject: T = _item...age}") } 4.out out修饰型,表示该型对象可以赋值给父类 class Product(val product: T) { fun getItem(...,没有继承关系 6.reified kotlin也不允许对型作类型检查,当我们想要知道型参数具体是哪个类型时,可以使用reified关键字修饰 reified必须和inline配合使用,原因是编译的时候

27810

Kotlin 型:基本使用

Kotlin 中声明和使用型类、型函数的基本概念和 Java 相似,有 Java 型概念的情况下,不用详细解释或者做进一步了解,也能够很容易地上手使用型。...但使用型仅仅是第一步,要想将型应用好,仍然需要做进一步深入的学习。本篇是 Kotlin 型的基础介绍,进阶内容可点击链接查看。...Kotlin 型:基本使用Kotlin 型:类型参数约束系列持续更新中,欢迎关注订阅。为什么需要型假如我们想实现自定义的列表类型,用于存放数值、字符串或其他具体的类型。...当我们在「定义」型类、型函数时,我们使用的是「类型参数」;当我们在「使用」型类、型函数时,我们使用的是「类型实参」。...下一篇文章,将介绍 Kotlin 型的进阶知识:类型参数约束

1.6K30

kotlin入门之

【码上开学】Kotlin型 在学习kotlin 型之前我们先来回顾一下关于Java的型基础吧。 说道型,我们可能最常用的就是在三大集合中去使用。...说完了Java的型之后,我们在回头看一下kotlin中的型。 kotlin 中的out和in kotlin和java型一样,kotlin中的型本身也是不可变的。...号也能作为型通配符使用,相当于 ? extends Object。 它在 Kotlin 中有等效的写法:* 号,相当于out Any。...fun invoke(p1: P1,p2: P2)=TODO() } val f:Function=Function() f.invoke()//参数为下限,但是我们的kotlin...伪型:编译时擦除类型,运行时无实际类型生成 例如:java、kotlin型:编译时生成真实类型,运行时也存在该类 例如:C#、C++ 我们知道JVM上的型,一般是通过类型擦除来实现的

1.1K20

Kotlin基础之

Kotlin没有任何的通配符类型,它使用声明处变型和类型投影两种方式替代。 通配符 - 使用问号表示的类型参数,表示未知类型的类型约束方法。 首先,先思考为什么Java需要这些难以理解的通配符。...除了out,kotlin提供了一个补充的变型注解:in。让类型参数变为逆变量:只能消费,从不生产。Comparable就是协变量一个很好的例子。...此时安全地定义投影的型,每个型的具体实例都是型的子类型。 为此,Kotlin提供称为星号投影的语法。 对于Foo,T为带有上界TUpper的协变量,Foo等价于Foo。...如果型有多个类型参数,则每个都可以独立投影。比如,如果类型声明为interface Function 型函数 不仅类可以有类型参数,函数也可以有。...SingletonList(item: T ): List{ // ... } fun T.basicToString() : String { // 扩展函数 // ... } 调用型函数

92070

Kotlin 型:类型参数约束

上一篇文章讲了 Kotlin 型:基本使用,接下来我们再进一步了解型使用相关的进阶知识。本篇是 Kotlin 型类型参数约束的讲解,更多内容可点击链接查看。...Kotlin 型:基本使用Kotlin 型:类型参数约束系列持续更新中,欢迎关注订阅。...Kotlin 引入了「多重约束」。...利用范型约束实现非空范型Kotlin 有一个为人称道的特性:不可空。但当我们使用范型时,这个特性在不幸的失效了。...当我们定义一个范型类/范型函数时,由于「类型参数」在被「类型实参」替换时可使用「可空类型」和「非空类型」这两种类型,这会迫使我们在做具体实现要考虑可空类型,带来了不必要的复杂性。

2.1K31

Kotlin 进阶 型知识详解

前言 详细介绍Kotlin中关于型的知识。方便我们理解型在Kotlin中的使用。 如果对于型知识不太了解,也可以通过本篇文章了解型到底是什么,并且对我们开发到底有什么作用。...我们可以在函数声明,属性声明,类声明和接口声明中使用型。下面也从这四个维度进行介绍型在Kotlin中的使用。 1.声明型函数 例如,我们声明一个比较函数。...顺便复习一下Kotlin中的伴生对象:Kotlin 进阶 object关键字介绍与学习 (zinyan.com)知识。...在Kotlin中的型定义和java中其实很类似。都是使用来进行标注。 小知识:型并不是必须用T字母来代替。...里面包含了所有的本网站关于Kotlin的相关知识。

15430

Kotlin入门(11)江湖绝技之特殊函数

上一篇文章介绍了Kotlin对函数的输入参数所做的增强之处,其实函数这块Kotlin还有好些重大改进,集中体现在几类特殊函数,比如型函数、内联函数、扩展函数、尾递归函数...,“Array”可称作型变量,至于arrayOf便是本文要说的型函数了。...下面举个型函数的定义例子,目的是把输入的可变参数逐个拼接起来,并返回拼接后的字符串,示例代码如下: //Kotlin允许定义全局函数,即函数可在类外面单独定义,然后其他类也能直接调用 fun ...因为类的成员函数依赖于类,只有型类(又称模板类)才能拥有成员型函数,普通类是不允许定义型函数的,否则编译器会直接报错。...改写为型函数的代码见下: //扩展函数结合型函数,能够更好地扩展函数功能 fun Array.swap(pos1: Int, pos2: Int) { val tmp = this

1.2K10

Kotlin学习之路(4)函数的运用

public 表示该函数为公共方法,而Kotlin默认就表示函数是公开的,所以省略了关键字 ③ Java使用 void表示该函数没有返回值,而Kotlin中没有关键字void ,若没有返回值不用特别声明...,函数内部解析的时候,Kotlin会把可变参数当成一个数组。...【几种特殊的函数】 型函数 按照之前的例子,函数的输入参数类型必须定义函数的时候需要指定 例如:var int_array:Array = arrayOf(1,2,3) 定义型函数的时候...} return str } 调用appendString函数,就跟调用arrayOf方法一样,只需在函数名称后面加即可 内联函数 前面我们定义的型函数...因为类的成员依赖于类,只有型类才能拥有成员型函数,而普通类是不允许定义型函数的,否则编译器直接报错。

71210
领券