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()