我正在使用mysql ++,我们需要在其中形成查询,因此在将它发送到mysql ++包装器和数据库之前需要进行类型检查。在某些情况下,我们需要类似uid
的内容,它基本上是int
类型。但是,我也可以接受std::string
并检查是否可以将其转换为整数。在某些解释语言中,没有这样的问题,因为所有类型都存储为字符串,您可以使用int(str)
轻松解析和转换它们。问题是我应该何时更喜欢转换?从字符串转换为其他类型可能有一些方便:我可以使用字符串的方法并绑定一些检查。但是有什么缺点?
答案 0 :(得分:1)
几乎没有。拥有类型的原因是指定方法或方法的使用方式。
如果在调用链的末尾需要一个int,那么这应该反映在方法签名中。
cast和int(str)之间也有细微差别。第二个不是强制转换,而是涉及对字符串的某种解析,以指定字符串是否实际表示数字。
在C ++中,您必须尝试将字符串解析为int,检查转换是否成功并从那里继续。当你知道你需要一个int时,为什么要付钱呢?
如果以某种方式获取字符串,可以在调用函数之前尝试解析它们。我认为它更干净。