Language agnostic 命名转换函数
在大多数语言中,哪种转换命名约定是标准的Language agnostic 命名转换函数,language-agnostic,naming-conventions,Language Agnostic,Naming Conventions,在大多数语言中,哪种转换命名约定是标准的 convert_from_typea_to_typeb(arg) 或 或者还有其他标准吗?我想在C++中,您可以使用cast操作符,所以这些名称都不适合 在Objective-C中,我看到了类似NSPointFromCGPoint(…)的内容,或者您可以在构造函数中简单地给出旧类型 我唯一很少看到的是那些带有convert_x_uto_y:-)的函数。我在这里采用面向对象的方法,(在相关的名称空间中)有一个convert类,其中包含一系列重载to,如下
convert_from_typea_to_typeb(arg)
或
或者还有其他标准吗?我想在C++中,您可以使用cast操作符,所以这些名称都不适合
在Objective-C中,我看到了类似NSPointFromCGPoint(…)的内容,或者您可以在构造函数中简单地给出旧类型
我唯一很少看到的是那些带有convert_x_uto_y:-)的函数。我在这里采用面向对象的方法,(在相关的名称空间中)有一个
convert
类,其中包含一系列重载to
,如下所示:
由于php专门进入对话,因此添加了内容;您无法在php中真正实现“重载”,但有一种方法可以做到这一点:
类ConversionException扩展异常
{
}
我的答案纯粹是主观的,是从源到目标的逻辑流程
ConvertStringToInt()
或
这类事情没有跨语言标准。大多数语言要么提供了一种内置的方法(C/C++),要么鼓励您找到另一种方法(Java/C++) 在大多数面向对象语言中,您不应该需要这种功能。您应该尝试重新构造您的程序,以便不需要进行任何显式转换
但是,如果您真的需要这样做,我建议您在开始时删除“convert”,然后执行
\u到
。示例:string-to-int
,int-to-float
,foo-to-bar
,等等(当然,无论您的语言喜欢什么情况,都可以编写这些代码。例如,在C:StringToInt
;在JavaScript:StringToInt
)中没有标准。在C++中,这些操作符通常都是没有名字的操作符,而java中很少出现这个问题。您使用$表明您实际上考虑了PHP。一个更有趣的问题是在“int”、“toInt”、“stringToInt”和可能的“convertStringToInt”之间进行选择。(…或“ToInt”或“to_int”,取决于语言的规范。)@bmar$
只是因为PHP使用太多。除了没有单一标准之外,这本身就依赖于语言。对于强类型语言,您不必从中拼写出的类型,对于专用的转换
名称空间,您可能不需要使用转换
作为前缀,……@ bGululys:用C++,通常有代码指南,而不是操作符,因为隐式转换的不明显性,需要明确的转换函数。C没有转换运算符,C++中经常有代码准则禁止它们,因为当转换不拼写时,代码难以维护。明确指出。
public class Convert
{
public Foo ToFoo(Bar instance);
public Foo ToFoo(Baz instance);
public Bar ToBar(Foo instance);
public Bar ToBar(Baz instance);
public Baz ToBaz(Foo instance);
public Baz ToBaz(Bar instance);
}
class Convert
{
public static function ToFoo($instance)
{
$from_type = get_class($instance);
$my_convert_method = $from_type . 'ToFoo';
if (method_exists(__CLASS__, $my_convert_method))
{
return self::$my_convert_method($instance);
}
else
{
throw new ConversionException(sprintf('Cannot convert %s to Foo.', $from_type));
}
}
protected static function BarToFoo(Bar $instance)
{
/* conversion implementation here */
}
protected static function BazToFoo(Bar $instance)
{
/* conversion implementation here */
}
/* you get the point */
}
ConvertStringToInt()
ConvertVisitorToCustomer()