Nim中什么是无基础方法?

时间:2017-03-13 01:12:14

标签: oop nim

我是这门语言的新手。当尝试使用方法编译新的对象类型时(第一个参数是我的新类型的实例),编译器警告我这样:

Warning: use {.base.} for base methods; baseless methods are deprecated [UseBase]

2 个答案:

答案 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) =
  ...