C - 我应该接受哪种类型的参数?(我们什么时候应该铸造?)

C++ - What type of parameters should I accept? (When should we cast?)

本文关键字:我们 什么时候 该接受 种类 类型 参数      更新时间:2023-10-16

我正在使用mysql ,我们需要在其中进行查询,因此在将其发送到MySQL 包装器和数据库之前,有必要进行类型检查。在某些情况下,我们需要类似于int类型的uid之类的东西。但是,我也可以接受std::string,并检查是否可以将其转换为整数号码。在某些解释语言中,没有这样的问题,因为所有类型均以字符串存储,并且您可以轻松地解析并使用int(str)转换它们。问题是我什么时候应该喜欢转换?从字符串转换为其他类型可能会有一些便利:我可以使用字符串方法并绑定一些检查。但是什么是缺点?

几乎永远不会。具有类型的原因是指定意图或应使用方法的方式。

如果在呼叫链的末尾您需要一个int,则应反映在方法签名中。

铸造和int(str)之间也存在细微的差异。第二个不是铸件,而是涉及字符串的某种解析,以指定字符串是否实际代表数字。

在C 中,您必须尝试将字符串解析为int,检查转换是否成功并从那里继续。当您知道需要INT时,为什么要为此付费?

如果您以某种方式获得字符串,则可以在调用功能之前尝试解析它们。我认为这是这样干净的。