问题标签 [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 投票
1 回答
35 浏览

saxon - “使用 TinyBuilder 为 null 构建树”对撒克逊扩展功能和使用 -t 选项意味着什么?

使用我的撒克逊扩展功能代码,我有日志消息:

我不清楚是否Building tree for null using class net.sf.saxon.tree.tiny.TinyBuilder意味着我的代码https://gitlab.com/ms452206/socode20200915有问题以及如何避免它。

0 投票
3 回答
95 浏览

kotlin - Comparable 和运算符 compareTo 有什么区别?

可以说我有class A(val foo: Double)

我希望能够将它与其他A,DoubleInt.

如果我实现Comparable,我只能将它与另一种对象类型进行比较。

但我也看到了覆盖compareTo操作符的扩展函数。

这些和我应该使用什么之间有什么区别?我猜如果我想将它与多种类型进行比较,那么我必须使用扩展函数吗?

0 投票
2 回答
162 浏览

javascript - 如何在 Typescript 中编写 Kotlinesque 扩展函数?

如果我有这样的情况,我会使用Kotlin :interface

我可以在代码的任何地方编写这样的扩展函数:

打字稿中,如果我有类似的interface

我怎样才能以类似的方式增加它?这是该语言的最佳实践吗?有没有我不知道的替代方案?

0 投票
2 回答
451 浏览

kotlin - Kotlin:扩展函数的惯用用法 - 将扩展函数放在它扩展的类旁边

我在 Kotlin 中看到了一些扩展函数的用法,我个人认为这没有意义,但似乎有一些指南“显然”支持它(解释问题)。

具体来说:在类之外定义扩展函数(但在同一个文件中):

广泛使用的地方asXyzFormat(),并且不能被定义为私有/内部(但也适用于可能的情况)。

在我的常识中,如果您拥有代码AddressDTO(班级。

  • 边缘情况:如果您想避免以 - 开头的函数序列化get- 注释类以获得所需的行为(例如@JsonIgnore在函数上)。这个恕我直言仍然不能证明扩展功能是合理的。

我对此的回应是,官方 Kotlin 编码约定支持具有这种方式的扩展功能的方法。具体来说:

自由使用扩展功能。每次您有一个主要作用于对象的函数时,请考虑将其作为扩展函数接受该对象作为接收器。 资源

和:

特别是,当为一个类定义与该类的所有客户端相关的扩展函数时,请将它们放在定义该类本身的同一文件中。在定义仅对特定客户端有意义的扩展函数时,请将它们放在该客户端的代码旁边。不要仅仅为了保存“Foo 的所有扩展名”而创建文件。 资源

我会感谢任何普遍接受的源/参考解释为什么将函数移动为类的成员和/或实用参数支持这种分离更有意义。

0 投票
1 回答
89 浏览

android - 如何在扩展函数中获取 Dagger2 类属性?

我正在使用 Dagger2,并且想在第三方类的扩展函数中使用我的应用程序的版本字符串。该应用程序目前公开版本:

BuildConfigProvider.kt

AndroidBuildConfigProvider.kt

安卓模块.kt

我在不同的扩展函数中看到了这段代码,并决定遵循该模式

所以我创建了一个组件AndroidBuildConfigComponent

我将此代码添加到扩展函数类文件中:

但是, this带有红色下划线的消息

这在当前上下文中没有定义

有什么方法可以在扩展函数类中获取应用程序上下文来构建组件?

或者更一般地说,有没有办法从 AndroidBuildConfigProvider 获取信息到扩展函数中?

我发现这篇文章谈论协程但无法真正理解大头钉。

第三方 Tracker 类的扩展类 (TrackerExt.kt) 的代码。

0 投票
2 回答
82 浏览

kotlin - 如何制作一个在kotlin中打印所有数据类型的扩展函数?

我想制作一个可以应用于所有数据类型的扩展函数(例如命名为(printDatatype))并打印它......例如:

0 投票
1 回答
200 浏览

android - 如何将进度条类转换为 kotlin 中的扩展函数?

我有一个自定义进度条类,我想将其转换为扩展函数,以便我可以在项目中的任何位置(片段和活动)使用它而无需初始化。

我希望能够在函数中填充进度条布局,并且还希望能够关闭进度条。

我怎样才能做到这一点?

0 投票
1 回答
35 浏览

kotlin - 定义扩展函数时如何在块内使用参数?

定义这种类型时extension function,如何arguments( Here, the argument of type String)在块内使用?

像这样定义extension functions和声明的同时,只能this用吗?

0 投票
1 回答
26 浏览

extension-function - 无法理解 Kotlin Android 中的扩展功能?

我无法理解扩展功能并在我的项目中使用它。有人可以在这里指导我吗?

0 投票
2 回答
467 浏览

android - 扩展函数内部的依赖注入

有没有办法在 Android Kotlin 中使用 DI 框架在扩展函数或全局函数中注入对象?

我在很多地方都使用了这个功能。所以我不想每次都传递一个参数。

DI 框架可以是 Koin、Hilt、Dagger2 或其他中的任何一个。

像这样的东西: