美文网首页
Kotlin 可变参数vararg关键字使用注意

Kotlin 可变参数vararg关键字使用注意

作者: pursuit_hu | 来源:发表于2023-02-08 17:23 被阅读0次

    某次在使用 String.format(*args) 是一直提示格式化错误,很费解,后面看了可变参数的介绍后才明白。
    开始表演->
    首先需要了解的知识点如下(感谢网上的大佬的总结):

    • args 带*号,会重新复制一个新的对象
    • args 无*号,会直接将传入的数据转换成一个Object类型

    这个很重要,这会便于理解下面给出示例代码

    // TODO(正确写法)
    private fun formatStr(content: String, vararg args: Any) {
        println("formatStr->${content.format(*args)}")
    }
    
    // TODO(错误写法)
    private fun formatStrErr(content: String, vararg args: Any) {
        println("formatStr->${content.format(args)}")
    }
    
    fun testStringFormat() {
        for (i in 1..10) {
            val strFormat = "这是第%d行的第%d个日志信息。。。。%s--%s"
            formatStr(strFormat, i / 10, i % 10, "a", "b")
        }
    }
    

    结论:在封装带有vararg可变参数的方法中,一定要注意,传递参数时不要少了*号,否则参数在传递的过程中类型就会发生改变。。。。。。切记切记

    相关文章

      网友评论

          本文标题:Kotlin 可变参数vararg关键字使用注意

          本文链接:https://www.haomeiwen.com/subject/boiqkdtx.html