android - 在kotlin中连接两个字节数组的简单方法?
问题描述
在 Kotlin 中连接两个字节数组的最简单方法是什么?
考虑,
val x = ByteArray(a);
val y = ByteArray(b);
帮我连接两个字节数组x,y
并将其存储在另一个ByteArray
?
解决方案
(和所有其他数组)有一个运算符plus
函数ByteArray
operator fun ByteArray.plus(elements: ByteArray): ByteArray
Returns an array containing all elements of the original array and then all elements of the given elements array.
因此,您可以简单地将此函数用作运算符:
val z ByteArray = x + y
还有重载版本:
operator fun ByteArray.plus(element: Byte): ByteArray
operator fun ByteArray.plus(elements: Collection<Byte>): ByteArray
详情请参考本文档: https ://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/plus.html
顺便说一句,这个函数有很多很多重载版本,
例如,您可以加上一个 ( Iterable<T>
, Collection<T>
, or Array<T>
) 和另一个 ( Iterable<T>
, Collection<T>
, Array<T>
, or Sequence<T>
),然后得到一个List<T>
,
或者你可以加上一个Set<T>
和另一个(Array<out T>
、、Iterable<T>
或Sequence<T>
),然后得到一个Set<T>
所有这些重载版本都是运算符函数,这意味着您可以像使用它一样使用它listA + arrayB
操作员a + b
将调用操作员函数a.plus(b)
详情请参考本文档: https ://kotlinlang.org/docs/reference/operator-overloading.html
推荐阅读
- java - Java 无法连接到 SQL Server
- python - 根据不同索引数据框中的值填充数据框中的新列
- powershell - 修剪Powershell中的最后8个字符
- rest - 如何从 apex 启用 Rest 启用 SQL 并在 cordova 应用程序中使用它
- jquery - Safari上未显示模态
- amazon-web-services - Cloudformation AWS::ApiGateway::ClientCertificate 已过期
- ajax - 为什么通过 AJAX 发布表单数据时控制器没有重定向到指定的路由?
- python - 在 S3 中合并大量小 csv 文件(不同列大小)的最佳方法
- microsoft-cognitive - QnA Maker 缺少火车端点
- java - Spring Kafka 生产者抛出 TimeoutExceptions