我正在考虑一个用于本地化目的的函数,我确切地知道它应该做什么,以及如何做到这一点,但我一生都无法弄清楚给它起个好名字。我很确定英语中有一个不错的标准表达可以很好地应用到这里的这个东西,我只是找不到它。
问题本身完全与语言无关,但这里的代码是用 PHP 编写的,因为这就是我目前正在写的内容。
所以请命名我的函数!
/**
* Expand a number into a format string based on its value, giving
* different format strings for 0, 1 and greater than one.
*
* example:
* myFun(count($apples), 'No apples', 'one apple', '%d apples.');
*
* @param integer $aNumber
* @param string $ifZero
* @param string $ifOne
* @param string $ifGreaterThanOne
* @return string
*/
function myFunc($aNumber, $ifZero, $ifOne, $ifGreaterThanOne)
{
assert('is_integer($aNumber) && $aNumber > -1;');
assert('is_string($ifZero);');
assert('is_string($ifOne);');
assert('is_string($ifGreaterThanOne);');
$result = null;
if ($aNumber == 0)
{
$result = strpos($ifZero, '%d') > -1
? sprintf($ifZero, $aNumber)
: $ifZero;
}
else if ($aNumber == 1)
{
$result = strpos($ifOne, '%d') > -1
? sprintf($ifOne, $aNumber)
: $ifOne;
}
else
{
$result = strpos($ifGreaterThanOne, '%d') > -1
? sprintf($ifGreaterThanOne, $aNumber)
: $ifGreaterThanOne;
}
return $result;
}
最佳答案
我见过的最技术性的名称是“CardinalityLabel”,但我通常将其称为 CountLabel。
关于function - 说出该函数的名称! (因为我不能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176778/