Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Kotlin中传递StringBuilder::append作为参数_Kotlin_Append_Stringbuilder - Fatal编程技术网

在Kotlin中传递StringBuilder::append作为参数

在Kotlin中传递StringBuilder::append作为参数,kotlin,append,stringbuilder,Kotlin,Append,Stringbuilder,我正在使用for Java创建一个助记符。 因此,我将(大部分是IDEA)转换为Kotlin语法中的函数,如下所示: fun助记符生成器():字符串{ val sb=StringBuilder() val entropy=ByteArray(Words.12.bytellength()) SecureRandom().nextBytes(熵) 助记符生成器(English.INSTANCE) .create助记符(熵,sb::追加) 把某人送回原处 } IntelliJ IDEA一直告诉我,对

我正在使用for Java创建一个助记符。 因此,我将(大部分是IDEA)转换为Kotlin语法中的函数,如下所示:

fun助记符生成器():字符串{
val sb=StringBuilder()
val entropy=ByteArray(Words.12.bytellength())
SecureRandom().nextBytes(熵)
助记符生成器(English.INSTANCE)
.create助记符(熵,sb::追加)
把某人送回原处
}
IntelliJ IDEA一直告诉我,对于sb::append,以下函数都不能使用提供的参数进行调用。

我的问题是,第二个参数有但所有的附加器都返回StringBuilder作为一个值


有人能帮我吗?

事实上,参数签名不匹配。您可以使用lambda而不是方法引用来解决此问题:

助记符生成器(English.INSTANCE)
.create助记符(熵){sb.append(it)}

事实上,参数签名不匹配。您可以使用lambda而不是方法引用来解决此问题:

助记符生成器(English.INSTANCE)
.create助记符(熵){sb.append(it)}
有一个简明的示例,您可能会发现它很有用,这样您就不必依赖IntelliJ将Java转换为Kotlin。我创建它是为了支持Android钱包的工作,它主要基于我们的一位内部密码学家的一个Rust实现,他是BIP-39规范的合著者。该库还通过了我们安全团队的审查。所以希望它是有用的。如果没有,请提交一个问题:)有一个简明的方法,您可能会觉得很有帮助,这样您就不必依赖IntelliJ将Java转换为Kotlin。我创建它是为了支持Android钱包的工作,它主要基于我们的一位内部密码学家的一个Rust实现,他是BIP-39规范的合著者。该库还通过了我们安全团队的审查。所以希望它是有用的。如果没有,请提交问题:)