Можно ли использовать переменную типа string, как название функции и потом вызвать ее?

В языке программирования Go нельзя использовать переменную типа string в качестве названия функции. Названия функций в Go должны быть известны во время компиляции и должны быть объявлены явным образом в исходном коде.

Однако, если вы хотите динамически вызывать функцию в Go, вы можете использовать мапу или словарь функций. Мапа функций позволяет вам связать строковые ключи с соответствующими функциями, которые можно вызывать по имени.

Пример использования мапы функций в Go:

package main

import (
    "fmt"
)

func main() {
    functionMap := make(map[string]func())

    // Добавление функции в мапу
    functionMap["sayHello"] = func() {
        fmt.Println("Hello!")
    }

    // Вызов функции по имени
    if function, ok := functionMap["sayHello"]; ok {
        function()
    } else {
        fmt.Println("Функция не найдена")
    }
}

В этом примере мы создаем мапу функций functionMap, где ключами являются строки, а значениями - функции без аргументов и возвращаемых значений. Мы добавляем функцию sayHello в мапу и затем вызываем ее с помощью имени функции из мапы. Если функция не найдена, выводится сообщение об ошибке.

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