【问题标题】:Kotlin: why would you want to convert Int.toString?Kotlin:为什么要转换 Int.toString?
【发布时间】:2021-01-11 04:36:03
【问题描述】:

我还是 kotlin 的新手,所以对我的问题持保留态度

所以我一直在学习 kotlin,在我阅读的一篇文章中,我以这段代码为例说明了如何使用 .toString

val sum1 = { a: Int, b: Int -> 
    val num = a + b 
    num.toString()   //convert Integer to String 
} 
fun main(args: Array<String>) { 
    val result1 = sum1(2,3) 
    println("The sum of two numbers is: $result1") 
} 

输出:

The sum of two numbers is: 5

据我了解,它是“5”,但属于字符串类型.. 但是为什么呢??

我们可以简化代码并获得相同的结果:

    val sum1 = { a: Int, b: Int -> a + b }

    val result1 = sum1(2,3)
    println("The sum of two numbers is: $result1")

输出:

The sum of two numbers is: 5

所以..我已经看到了如何使用它的示例,但我仍然没有找到任何东西来解释你为什么要使用它

【问题讨论】:

  • 您不需要显式调用 toString,因为字符串模板会为您隐式调用它们,但是当您特别需要它作为字符串时会发生什么?比如“1”+0和1+0的区别,或者存储到字符串变量中,或者当你想把它作为字符串处理比如枚举每个字符等时
  • 请注意,将sum1 的类型从(Int,Int) -&gt; String 更改为(Int,Int) -&gt; Int

标签: android kotlin


【解决方案1】:

.toString() 返回对象的字符串表示形式。 它不仅限于将Int 转换为String。 您可以使用它来将其他数据类型如Boolean 转换为String

因此,当开发人员需要将Int 存储为String 时,他/她可以在.toString() 的帮助下将 Int 转换为 String。

上面你分享的sn-p代码太笼统了,所以你搞糊涂了。

总而言之,当您想将任何数据类型存储/映射到字符串时,请使用.toString()

【讨论】:

    【解决方案2】:

    每个人都在谈论“如何使用它”,但仍然没有人说“为什么要使用它”

    所以我做了一个例子,希望能帮助人们

    fun main(){
        inference()
    }
    
    fun inference() {
        val sum1 = { a: Int, b: Int ->
            val num = a + b
    
            // convert Integer to String
            num.toString()
        }
    
        val result1 = sum1(2, 3)
        println("The sum of the two numbers is: $result1")
    
    
        // compiler error: can't use "result1" because it's a String and not an Int
        //val result2 = sum1(result1, 3)
    
    
        // let's say your code only takes strings but you want to insert an Int
        val sum2 = {a: String, b: String ->
            val str = a + b
            str
        }
    
        var int: Int? = 10
        //int = null // uncomment this line to get the other outcome
        if(int != null){
            val result3 = sum2("the number we got is: ", int.toString())
            println(result3)
        } else {
            val result4 = sum2("we did not get any number, ", " check if int is null")
            println(result4)
        }
    }
    

    希望这对某人有所帮助

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多