go, без тела, где я могу найти его реализацию [дублировать]

Правый путь https://github.com/yapro/helpers/blob/master/src/ArrayHelper.php

class ArrayHelper
{
    /**
     * @param array $array1
     * @param array $array2
     * @return array
     */
    function arrayDiffAssocMultidimensional(array $array1, array $array2): array
    {
        $difference = [];
        foreach ($array1 as $key => $value) {
            if (is_array($value)) {
                if (!array_key_exists($key, $array2)) {
                    $difference[$key] = $value;
                } elseif (!is_array($array2[$key])) {
                    $difference[$key] = $value;
                } else {
                    $multidimensionalDiff = $this->arrayDiffAssocMultidimensional($value, $array2[$key]);
                    if (count($multidimensionalDiff) > 0) {
                        $difference[$key] = $multidimensionalDiff;
                    }
                }
            } else {
                if (!array_key_exists($key, $array2) || $array2[$key] !== $value) {
                    $difference[$key] = $value;
                }
            }
        }
        return $difference;
    }
}

18
задан Rick-777 19 February 2013 в 20:25
поделиться

1 ответ

1) Функция определена здесь :

// startTimer adds t to the timer heap.
//go:linkname startTimer time.startTimer
func startTimer(t *timer) {
    if raceenabled {
        racerelease(unsafe.Pointer(t))
    }
    addtimer(t)
}

2) Объявление функций :

Объявление функции может опустить тело. Такое объявление предоставляет подпись для функции, реализованной вне Go, например, процедуры сборки.

3) Не каждый язык программирования может полностью выражать свое собственное время выполнения (например, C). Части выполнения Run и стандартная библиотека находятся на C, части находятся в сборке, а некоторые другие находятся в .goc, что является недостаточно хорошо документированным гибридом Go и C.

24
ответ дан y0ssar1an 21 August 2018 в 06:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: