错误:需要属性名或接收器类型-Kotlin

k5ifujac  于 2022-12-23  发布在  Kotlin
关注(0)|答案(1)|浏览(237)

无法找出下面的代码有什么问题,为什么我会得到下面的错误:

/**
 * Example:
 * var ti = TreeNode(5)
 * var v = ti.`val`
 * Definition for a binary tree node.
 * class TreeNode(var `val`: Int) {
 *     var left: TreeNode? = null
 *     var right: TreeNode? = null
 * }
 */
class Solution {
    fun pathSum(root: TreeNode?, sum: Int): List<List<Int>> {
        var result : List<MutableList<Int>> = listOf(mutableListOf())
        var path : MutableList<Int> = mutableListOf()
        dfs(root, sum, result, path)
        return result
    }

    fun dfs(root: TreeNode?, sum: Int, result: List<MutableList<Int>>, path: MutableList<Int>){

        if(root == null) return

        path.add(sum)

        dfs(root.left, sum - root.val, result, path)
        dfs(root.right, sum - root.val, result, path)

        if(sum == 0 &&
                root.left == null &&
                root.right == null) {           
            result.add(path)
        }

        path.remove(path.size() - 1)

    }
}

我在运行上面的代码时遇到了很多编译时错误,Kotlin还在努力找出根本原因:

Line 24: Char 38: error: expecting property name or receiver type
            dfs(root.left, sum - root.val, result, path)
                                         ^
    Line 24: Char 46: error: expecting an element
            dfs(root.left, sum - root.val, result, path)
cs7cruho

cs7cruho1#

瓦尔是Kotlin中的一个关键字,如果你想用它作为一个字段的名字,你需要把它 Package 成反勾号:'瓦尔'(实际上,代码之前的注解中的代码示例显示了这一点)。

相关问题