Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65

Не могу собрать аналогичную структуру

22.08.2022, 19:33. Показов 811. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня уважаемые.

есть у меня модель которая описывает секцию текстового документа в повершелл

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MSH4 {
 
    # Namespace Id
    [string]${1}
    
    # Universal Id
    [string]${2}
 
    # Universal Id Type
    [string]${3}
 
    [string] ToString () {
        return (1..3).ForEach{ $this."$_" } -join '^' 
    }
}
секции у него нумеруются и названия как такового не имеют в pwsh можно полю дать произвольный идентификатор заключив его в фигурные скобки, и метод который собирает эти поля перечисляя их в цикле.


Подскажите пожалуйста как это в голанг сделать, ибо секций может быть несколько десятков и перечислять их желания нет

Go
1
2
3
4
5
6
7
8
9
type msh struct {
    _1 string
    _2 string
    _3 string
}
 
func (m msh) GetText() string {
    // ???  
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.08.2022, 19:33
Ответы с готовыми решениями:

Не могу собрать проект
Добрый день, Создал проект, 5 классов, они используют стороннюю библиотеку для работы с MS Office файлами, как его правильно собрать в...

Не могу собрать проект
Добрый день. Не могу собрать проект. Помогите пожалуйста. https://github.com/torum/BitWallpaper Спасибо.

Не могу собрать формулу
Всем Привет помогите пожалуйста содать функцию В ячейке C1:C22 написано цыфры мне нужно написать функцию чтобы автоматически вписывался...

4
Модератор
 Аватар для Curry
5158 / 3479 / 536
Регистрация: 01.06.2013
Сообщений: 7,542
Записей в блоге: 9
22.08.2022, 21:00
Может и можно вытащить значения полей рефлексией
Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import (
    "fmt"
    "reflect"
)
 
type msh struct {
    _1 string
    _2 string
    _3 string
}
 
func main() {
    x := msh{_1: "qwe", _2: "asd", _3: "zxc"}
    v := reflect.ValueOf(x)
    if v.Kind() == reflect.Struct {
        for i := 0; i < v.NumField(); i++ {
            fmt.Printf("Field name "%s" = "%s"\n",
                v.Type().Field(i).Name,
                v.Field(i).String())
        }
    }
}
Да только это идеологически неправильно. Вне зависимости от языка.
Если чего то может быть переменное количество, то это должен быть массив или какой то другой контейнерный тип (список, словарь и т.п.)
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
22.08.2022, 21:23  [ТС]
Цитата Сообщение от Curry Посмотреть сообщение
Да только это идеологически неправильно.
это конечно аргумент...

в пользу

Go
1
2
3
4
5
6
7
8
9
10
11
12
func (m Msh) GetText() string {
    sb := strings.Builder{}
    sb.WriteString(m._1)
    sb.WriteString("|")
    sb.WriteString(m._2)
    sb.WriteString("|")
    sb.WriteString(m._3)
    // ...
    // sb.WriteString("|")
    // sb.WriteString(m._86)
    return sb.String()
}
0
Модератор
 Аватар для Curry
5158 / 3479 / 536
Регистрация: 01.06.2013
Сообщений: 7,542
Записей в блоге: 9
22.08.2022, 22:23
Лучший ответ Сообщение было отмечено alhaos как решение

Решение

Цитата Сообщение от alhaos Посмотреть сообщение
это конечно аргумент...
я вам показал как добывать значения полей через рефлексию.
Думал, GetText сами напишите.
Go
1
2
3
4
5
6
7
8
9
10
11
func (m Msh) GetText() string {
    v := reflect.ValueOf(m)
    sb := strings.Builder{}
    for i := 0; i < v.NumField(); i++ {
        if i > 0 {
            sb.WriteString("|")
        }
        sb.WriteString(v.Field(i).String())
    }
    return sb.String()
}
1
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
22.08.2022, 22:44  [ТС]
Curry, я просто Вашей идеей проникся, вот сижу думаю...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.08.2022, 22:44
Помогаю со студенческими работами здесь

Не могу собрать схему
Здраствуйте, нужно смоделировать схему в протеусе, у меня не выходит, сможете помочь? буду очень признателен

Не могу собрать программу
собираю в netbeans + cygwin исходники выдает ошибку не знаю как исправить. TCPClient.cpp // TCPClient.cpp : Defines the entry...

Не могу собрать калькулятор
.model small .286 .data minus db '-$' error db 'ERROR! Division by zero',10,13,'$' vyvod dw ?,'$' znak dw ? ch1 dw ? ...

не могу собрать проект
Собираю под WSL. Для linux сборка проходит успешно. А для windows c ошибкой. max@pc0:~/rust-to-cpp$ cargo build --release --target...

Не могу собрать проект
Добрый день коллеги! есть проект по обмену данными между ПК и микроконтроллером. Данный проект не удается собрать. Шарп это не мой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru