Как изменить тип переменной во время выполнения - PullRequest
0 голосов
/ 24 декабря 2018

Я хотел бы знать, возможно ли изменить тип переменной во время выполнения, например:

package main

import "github.com/fatih/structs"

type T struct {
  MyField bool
}

func main() {
  fakeVariable := ""

  s := structs.New(T{})
  for _, field := range s.Fields() {
    field.Set(fakeVariable) 
  }
}

Поскольку MyField является логическим значением, я хотел бы изменить fakeVariable на логическое значение, иожидаемый результат будет то, что MyField является ложным (потому что пустые строки ложные).Но тип MyField может быть любым, поэтому я хотел бы знать, как привести его к типу MyField.Я знаю, что могу получить тип поля, используя field.Kind(), и это:

field.Set(fakeVariable.(field.Kind())

Не будет работать.

fakeVariable всегда будет строкой, но это можетудерживайте значение «10.0», и если тип MyField float, он должен привести к плавающему типу, но если это строка, ему следует только назначить его.Имеет смысл?

Есть идеи, если то, что я пытаюсь, возможно?

1 Ответ

0 голосов
/ 24 декабря 2018

Как изменить тип переменной во время выполнения

Вы не можете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...