问题标签 [extension-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5494 浏览

operator-overloading - 为“数字类”重载 + 和 += 运算符

我想为封装 simple 的类创建扩展函数Number。例如DoubleProperty. 我遇到了一个问题,我不能同时重载++=运算符。

我不想创建通过以下测试的行为:

它可以使用这些扩展函数来实现:

问题是,如果过载++=也不能过载:

如果我只重载+运算符,则操作会返回一个新DoubleProperty对象+=而不是初始对象。

有没有办法解决这个限制?

0 投票
2 回答
18502 浏览

android - kotlin 之间的区别还有,apply,let,use,takeIf 和 takeUnless 在 Kotlin

我阅读了许多关于这些项目的 Kotlin 文档。但我不能理解得这么清楚。

Kotlin let , also , takeIftakeUnless的详细用途是什么?

我需要每个项目的示例。请不要发布 Kotlin 文档。我需要这些项目的实时示例和用例。

0 投票
0 回答
246 浏览

kotlin - 调用 kotlin 扩展函数时出现 NoClassDefFoundError

我正在使用 Android Studio 3.0 Beta 2 Canary Preview,并从 Java 调用 Kotlin 扩展函数:

科特林代码:

的Java代码:

代码编译得很好,但在运行时调用它给了我一个 - java.lang.NoClassDefFoundError

难道我做错了什么?Intellij那边有错误吗?如果需要更多信息,请说出来。

0 投票
2 回答
1190 浏览

android - 如何在Kotlin android的扩展函数中访问同名的类成员

我是 kotlin for android 的新手。我想访问在扩展函数中具有相同名称的类成员。例如:

我如何访问方法visibilitychangeVisibleState

0 投票
1 回答
1149 浏览

intellij-idea - 有没有办法在 Intellij IDE 中显示给定 Kotlin 类的所有扩展功能?

到目前为止,我发现的唯一方法是创建给定类的实例,然后使用自动完成功能查看所有可能的功能。显然,这种方式很繁琐,也很耗时。有没有更简洁的方法来查看所有可能的功能?

0 投票
4 回答
15504 浏览

kotlin - Kotlin - How i can access my new class extension function from another file

I am very new to Kotlin.

I want to be able to add a function to my abstract class, so when I define that function I will be able to invoke that on every child from that class(they inherit the abstract class)

However,I want to define those extension functions in other file. I can't access those functions when i try to invoke them on a particular child implementation of the abstract class.

What are the rules, that I need to made to resolve my problem?

I want to by able achieve something like this:

The extension method for parent and all childs:

And I want to be able to invoke this:

I defined all classes in separate file and also the extension function in other file.

I cannot access the function like this - is not visible.

0 投票
1 回答
77 浏览

xpath - Xpath 中的 OGC 过滤器规范

我有一些符合已知模式的 XML 文档,其中包括 GML 格式的几何图形。

我希望使用 XSD 和 Schematron 验证对 XML 执行验证,但我需要一些在 Xpath 语言中执行空间查询的方法(我假设通过扩展函数)。

我想知道是否有人知道我可以使用的实施标准,或者确实有人已经这样做了 - 我在谷歌上空了。

作为示例(仅代表,仅尝试演示问题的 xpath 部分(这确实是问题 - 我打算在 schematron 中使用它的事实是没有实际意义的))

我的 XML:

Xpath 返回 A 类型的东西,它与 B 类型的东西在空间上相交(同样,我正在组成一个函数扩展名称空间和一个(非常愚蠢的)函数来举例说明我正在尝试完成的事情):

由于这似乎介于开发和 GIS 之间,因此我在 GIS 和 StackOverflow 上进行了交叉发布。

0 投票
1 回答
2004 浏览

kotlin - 带有 logback(slf4j) 的 Kotlin 扩展日志功能

我创建了一个用于日志记录的扩展函数:

但我不确定它是否会在任何时候被调用,因为方法LoggerFactory.getLogger调用getILoggerFactory

Mb 有人已经做过类似的事情,可以向我保证不会有任何内存泄漏:)?

现在我使用老式方法(在类中声明记录器字段):

但像这样的简单unit测试:

显示与旧时尚选项相同的结果:

~*** TIME=0.02 sec

我在用着:

0 投票
3 回答
295 浏览

kotlin - 带有 vs 扩展运行的 Kotlin 范围函数

从我了解到的情况来看,它似乎是扩展函数T.run,并且with具有相同的目的,即创建对同一对象的多个调用进行分组的可能性,并返回 lambda 的最后一个对象作为其结果。

T.run()具有在使用它之前应用可空性检查的优点。(正如本文指出的那样)

使用有什么好处with?或者更好地说:是什么阻止我总是使用它T.run()?谢谢

0 投票
2 回答
2522 浏览

android - 字符串常量键的 SharedPreference 值的 Kotlin 扩展字段

扩展函数非常适合 android 中的 SharedPreference api。Jake Wharton 在本视频教程的时间码 32:30 有一个有趣的实现,他实现了 SharedPreferences 扩展功能,如下所示:

虽然这没关系,但它有点冗长。

Krupal Shah 的本教程解释了如何将 SharedPreferences 的 getter/setter 扩展函数简化为:

这很好,但括号暗示了可迭代的语义,IMO。虽然这不是世界上最糟糕的事情,但您只是希望您可以通过键常量本身实现 SharedPreferences 值的字段扩展。

我的问题是,有没有办法在 SharedPreferences 上实现这种类型的扩展?