我是这门语言的新手。当尝试使用方法编译新的对象类型时(第一个参数是我的新类型的实例),编译器警告我这样:
Warning: use {.base.} for base methods; baseless methods are deprecated [UseBase]
答案 0 :(得分:2)
基本方法对应于单调度语言中方法的基类。基本方法是一个方法对一个或多个类的最一般应用。如果只调度一个参数,则base方法应该与通常是包含该方法的基类的类型相关联。
答案 1 :(得分:0)
当我在派生类型上定义一个方法时,这个警告通常会发生在我身上 - 认为我是从基类型覆盖行为 - 但方法签名是错误的,我实际上并没有覆盖任何方法,因此警告。
如,
type
Base = ref object of RootObj
Derived = ref object of Base
method doSomething(b: Base, n: int) {.base.} =
...
# !!! This method gets warning because it's not overriding the base
# !!! doSomething method due to different parameter types
method doSomething(d: Derived, n: string) =
...