使用语义版本控制,如果我的 API 的功能之一发生以下更改:
foo(a, b)
->
foo(a, b, c) //c optional
这是否需要新的主要版本,还是可以在次要版本下通过?
使用语义版本控制,如果我的 API 的功能之一发生以下更改:
foo(a, b)
->
foo(a, b, c) //c optional
这是否需要新的主要版本,还是可以在次要版本下通过?
给定版本号 MAJOR.MINOR.PATCH,增加:
进行不兼容的 API 更改时的 MAJOR 版本,
以向后兼容的方式添加功能时的 MINOR 版本,以及
进行向后兼容的错误修复时的 PATCH 版本。
如果您的额外参数是可选的,则需要进行次要版本更改。否则,它需要更改主要版本。
当您进行不兼容的 API 更改时的 MAJOR 版本,当您
以向后兼容的方式添加功能时的 MINOR 版本,以及
当您进行向后兼容的错误修复时的 PATCH 版本。
因此,如果您更改功能,这是一个重大变化。
但是如果你用另一个签名重载函数并且没有破坏兼容性..这是一个小问题