Tag: 拉姆达

Kotlin,表/数组基于动态字段的条目

我正在做g-truc gli的kotlin端口 ,实际上我正在考虑稍微改变一下设计。 Gli使用纹理格式,types,swizzles等的内部rapresentation( gli::format等)。 在这个测试中 ,它实例化GL结构,传递配置文件,然后读取翻译后的gli格式: gli::gl GL(gli::gl::PROFILE_KTX); gli::texture2d TextureA(gli::FORMAT_RGB8_UNORM_PACK8, gli::texture2d::extent_type(2), 1, gli::texture2d::swizzles_type(gli::SWIZZLE_RED, gli::SWIZZLE_GREEN, gli::SWIZZLE_BLUE, gli::SWIZZLE_ALPHA)); gli::gl::format FormatA = GL.translate(TextureA.format(), TextureA.swizzles()); translate()将从表中获取,并且您传递给构造函数的配置文件是需要的,因为该表中的某些输入字段是依赖于配置文件的 : inline gl::gl(profile Profile) : Profile(Profile) { bool const HasSwizzle = has_swizzle(Profile); external_format const ExternalBGR = HasSwizzle ? EXTERNAL_RGB : EXTERNAL_BGR; … format_desc const Table[] = … } 该表中的每个条目都是以下结构体 : struct format_desc […]

投掷任何types的对象时未经检查强制转换? 成kotlin lambda

我的代码按预期工作,但我很好奇为什么存在以下警告: 忽视警告是否安全? 我知道Kotlin在运行时不能检查擦除types,但不是Kotlin中最通用的(顶级)对象。 我在找什么是一种方法来检查一个对象的types是“lambda”。 顺便说一句:任何? – >任何? 也没有摆脱这个问题。

Kotlin为lambda生成内部类

在我的代码中,我有这样的东西: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) presenter.onCreate() fabContainer.onClick { presenter.onLoginButtonClicked(…) } } 当我反编译apk和检查byteCode,这样的事情出现: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.presenter.onCreate(); Sdk23ListenersKt.onClick((ProgressFloatingActionButton) _$_findCachedViewById(com.prozis.prozisgo.prozisgo.R.id.fabContainer), new ActAuthLogin$onCreate$1(this)); } final class ActAuthLogin$onCreate$1 extends Lambda implements Function1 { final /* synthetic */ ActAuthLogin this$0; ActAuthLogin$onCreate$1(ActAuthLogin actAuthLogin) { this.this$0 = actAuthLogin; super(1); } public final void invoke(View it) { this.this$0.getPresenter().onLoginButtonClicked(StringsKt__StringsKt.trim(((EditText) […]

“与接收者的Lambda”:这个Kotlin结构是什么?

我正在看这个Kotlin对象声明: object A : B({ variableName1 = “text1” variableName2 = “text2” params { param(“Foo”, “Bar”) } }) 而我无法弄清楚B类构造函数的参数是什么。 我在这个例子中有目的地提取了信息,但是B类实际上是 jetbrains.buildServer.configs.kotlin.v10.BuildType 而我无法find该types的文档。 我发现了一些接近的东西,但它是一个接口的定义,因此没有构造函数。 总而言之,Kotlin的这个构造是什么? { variableName1 = “text1” variableName2 = “text2” params { param(“Foo”, “Bar”) } }

带Kotlin的LMAX Disruptor:不能使用lambda?

例如在Java中,我可以用LMAX disruptor做到这一点: Disruptor disruptor = new Disruptor(NetworkEvent::new, 2048, Executors.newSingleThreadedExecutor()); 在Kotlin我尝试了这个等价物: val disruptor = Disruptor({ NetworkEvent() }, 2048, Executors.newSingleThreadExecutor()) 但是我迎接这个错误:

参考Kotlin中特定实例的方法

在Java 8中,我们可以引用一个类的实例的方法。 这是一个例子 Function1 ref = a::getItem; a是具有方法Object getItem(int i)的类Adapter实例。 我们可以在Kotlin做同样的事吗? 我尝试了相同的语法没有成功。 到目前为止,我只能创建一个扩展方法的引用,如下所示: val ref: Adapter.(Int) -> Any = Adapter::getItem 但是在这里我仍然需要一个Adapter的实例来调用它。 我看到的另一种替代方法是定义一个这样的lambda: val ref: (Int) -> Any = { a.getItem(it) }

没有使用对象的Kotlin lambda

我正试图从java转换到kotlin。 目前的java界面是这样的: interface MyInterface { void foo(int x, int y); } MyInterface testing = (int a, int b) -> System.out.print(“TESTING”); 我目前的kotlin转换是: interface MyInterface { fun foo(x:Int, y:Int) } val kotlinConversion = object: MyInterface { override fun foo(x: Int, y: Int) { println(“TESTING”) } } 有没有办法写variableskotlinConversion ,使其与java中的类似,而不必重写函数?