gpt4 book ai didi

language-agnostic - 命名转换函数

转载 作者:行者123 更新时间:2023-12-04 14:43:08 29 4
gpt4 key购买 nike

哪种转换命名约定是大多数语言的标准?

convert_from_typea_to_typeb(arg)

或者
convert_to_typeb_from_typea(arg)

或者有其他标准吗?

最佳答案

我将在这里采用 OO 方法,(在相关命名空间中)有一个 Convert带有一堆重载的类 To<TypeName>像这样:

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);
}

另外,因为 php 专门进入了对话;你不能真正在 php 中“重载”,但有一种方法可以做到:
class ConversionException extends Exception
{
}


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 */
}

关于language-agnostic - 命名转换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982334/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com