如果有一个函数f(x)
,x的类型可以是Int或String,
如果它是Int,那么这个f将返回x+1
如果它是字符串,那么f将反转x并返回它。你知道吗
这在动态类型语言(如python和javascript)中很容易实现
只使用isinstance(x, Int)
。你知道吗
我们可以知道它的类型,如果不是这样的话, 但是在像kotlin这样的静态类型语言中,我不知道怎么做? 因为我不知道如何使x的类型可以是Int或String。你知道吗
定义f(x):
if isinstance(x, int):
return x+1
if isinstance(x, str):
return x[::-1]
在haskell中,我们有模式匹配来实现这一点
f::任意一个Int字符串->;任意一个Int字符串
f(左x)=左(x+1)
f(右x)=右(反x)
在科特林呢?你知道吗
你可以这样做:
这样,您就可以使用方法重载来基于params为您完成工作。你知道吗
密封等级E
数据类L(val v:String):E()
数据类R(val v:Int):E()
有趣的多边形(expr:E):E=when(expr){
}
println(poly(poly(R(3)))
println(poly(L(“aha”))
有吗?=当(expr){
}
在kotlin中,Arrow为语言提供了很多功能。它们之间有^{} 。
您可以定义:
相关问题 更多 >
编程相关推荐