在Ada,我经常看到这样的事情:
type Number is new Integer;
Run Code Online (Sandbox Code Playgroud)
这有什么意义?你能不能满意Integer吗?我也见过如下代码:
type Small_Number is range 1..5;
Run Code Online (Sandbox Code Playgroud)
这对我来说很有意义; 我明白为什么这会有用.但是,为什么,无论如何你会选择使用前一个例子?
NWS*_*NWS 11
更常见的是我见过这样的代码:
Type Pounds is new Integer;
Type Euros is new Integer;
Type Dollars is new Integer;
Run Code Online (Sandbox Code Playgroud)
这意味着您不会意外地将您的英镑兑换成欧元兑换美元.
如果要在两者之间进行转换,则需要进行显式转换或编写转换例程,这两者都会考虑适用的汇率.
(现在我进一步思考,在这个例子中,Float会比Integer更好!)
关键是这Number是一种新的类型,与之完全不同Integer.
这意味着在参数更多的控制,例如,因为不能使用的Integer,其中一个Number是必需的; 这有助于封装.
你想要保持这种程度的控制并且可能计划未来,你可能最终Number完全不同于它,这是非常合理的Integer.