Kotlin 未解决的对本地包的引用

Kotlin unresolved reference to local package

文件./Main.kt:

import numbers

fun main() {
    var value = numbers.sum(7, 4)
}

文件./numbers/Operations.kt:

package numbers

fun sum(val1: Int, val2: Int): Int {
    return val1 + val2
}

运行 命令 kotlinc Main.kt 输出:

Main.kt:1:8: error: unresolved reference: numbers
import numbers

Main.kt:4:17: error: unresolved reference: numbers
var value = numbers.sum(2, 3)

如果我尝试添加 import java(我是 Kotlin 的新手,我看到有人导入了这个。我认为它是标准库的一部分)然后输出还包含:

Main.kt:1:8: error: packages cannot be imported
import java

我做错了什么?

解决方案(感谢@gidds):

需要将每个文件传递给编译器,不像 Java 编译器 (javac)

kotlinc Main.kt numbers/Operations.kt

numbers是一个包。而且,正如错误所说,packages cannot be imported。仅 classes、函数或属性。

如果你import numbers.sum,你应该会发现你可以用例如sum(7, 4).

或者您可以直接调用其 fully-qualified 名称,无需导入:numbers.sum(7, 4).

java一样,也是一个包。您可以导入 java.util.concurrent.ConcurrentHashMap(class),但不能导入 javajava.utiljava.util.concurrent(它们都是包)。 (Java 有相同的限制。)