【问题标题】:Semantic operator of dot in KotlinKotlin 中点的语义运算符
【发布时间】:2023-02-08 22:10:19
【问题描述】:

我想更好地理解下面的两个函数。我知道它非常紧凑并且或多或少地了解它的作用:它将字符串的每个字符转换为“0”和“1”的字符串。但... 点(在 encodeToByteArray 前面)如何将“s”连接到 encodeToByteArray()? 我在哪里可以找到有关点代表什么的更多信息? 另外,代码{ byte -> binaryStringOf(byte) } 如何以及为什么可以在那个地方完成这项工作? 它如何“知道”有一个字节用来调用函数binaryStringOf(byte) 我在哪里也可以找到有关它的更多信息?

fun binaryStringOf(message: String): String {
    var s: String
    s = (message)
        .encodeToByteArray()
        .joinToString("") { byte -> binaryStringOf(byte) }
        return s
    }
fun binaryStringOf(b: Byte): String {
    return b.toString(2).padStart(8, '0')
}

【问题讨论】:

    标签: kotlin


    【解决方案1】:
    .encodeToByteArray()
    

    适用于传入的字符串(在本例中为message)。它returnsByteArray;所以代表一个的东西大批字节值。

    在该数组对象上,它调用 joinToString() 方法。该方法接收各种参数,但仅提供分隔符字符串 ("") 和 transform 参数。

    现在:transform 是一个功能.这是可以的调用,带有参数,并且必须返回特定结果。

    要理解的关键部分是 { byte -> ... }transform 函数参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多