IT评测·应用市场-qidao123.com技术社区

标题: 【解密 Kotlin 扩展函数】顶级函数和顶级属性(十五) [打印本页]

作者: 美丽的神话    时间: 2024-9-23 18:38
标题: 【解密 Kotlin 扩展函数】顶级函数和顶级属性(十五)
1.1.1 摆脱静态实用类的束缚–顶级函数

  1. package strings
  2. @JvmOverloads
  3. fun <T> joinToString(
  4.     collection: Collection<T>,
  5.     separator: String = ", ",
  6.     prefix: String = "",
  7.     postfix: String = ""
  8. ) : String {
  9.     val result = StringBuilder(prefix)
  10.     for ((index, elem) in collection.withIndex()){
  11.         if (index > 0) result.append(separator)
  12.         result.append(elem)
  13.     }
  14.     result.append(postfix)
  15.     return result.toString()
  16. }
复制代码
  1. /* Java */
  2. package strings;
  3. public class JoinKt {                                       // <1>
  4.     public static String joinToString(// ... ) { // ...  }  // <2>
  5. }
  6. ===========================================================
  7. /* Java */
  8. import strings.JoinKt;
  9. // ...
  10. JoinKt.joinToString(list, ", ", "", "");                   // <3>
复制代码
1.1.2 更改顶级声明所在的类名

  1. @file:JvmName("StringFunctions")                     // <1>package strings
  2. @JvmOverloads
  3. fun <T> joinToString(
  4.     collection: Collection<T>,
  5.     separator: String = ", ",
  6.     prefix: String = "",
  7.     postfix: String = ""
  8. ) : String {
  9.     val result = StringBuilder(prefix)
  10.     for ((index, elem) in collection.withIndex()){
  11.         if (index > 0) result.append(separator)
  12.         result.append(elem)
  13.     }
  14.     result.append(postfix)
  15.     return result.toString()
  16. }
  17. ======================================================import java.util.List;import strings.StringFunctions;                                 // <2>public class Example {    public static void main(String[] args){        System.out.println(StringFunctions.joinToString(List.of("1", "2")));    }}
复制代码
1.1.3 顶层属性

  1. var opCount = 0                     // <1>
  2. fun performOperation() {
  3.     opCount++                       // <2>
  4.     // ...
  5. }
  6. fun reportOperationCount() {
  7.     println("Operation performed $opCount times")     // <3>
  8. }
复制代码
  1. const val UNIX_LINE_SEPARATOR = "\n"            // <1>
  2. =============================================== // <2>
  3. /* Java */
  4. public static final String UNIX_LINE_SEPARATOR = "\n";
复制代码
  1. fun main() {
  2.     println(max(PI, E))          // <1>
  3.     // 3.141592653589793
  4. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4