I have a class (struct) like this:
type Question struct{
Question string
answerOne string
answerTwo string
answerCorrect string
}
You cannot by using only literals, but you could define a function.
func NewQuestion() *Question {
q := &Question{
Question: "What?",
answerOne: "A",
answerTwo: "B",
}
q.answerCorrect = q.answerOne
return q
}
// ...
q1 := NewQuestion()
You can create a pointer to struct and then assign the value to struct variable answerCorrect
. Finally you can print the valueAt struct pointer.
package main
import "fmt"
// Question struct for content
type Question struct {
Question string
answerOne string
answerTwo string
answerCorrect string
}
func main() {
question := &Question{
Question: "What?",
answerOne: "A",
answerTwo: "B",
}
// apply condition to chose from the answer
question.answerCorrect = question.answerTwo
fmt.Println(*question)
}
Analog to setting the correctAnswer
field after creating the Question
value, you can store the correct answer in a variable prior, and use that twice in the composite literal:
answerA := "A"
q := Question{
Question: "What?",
answerOne: answerA,
answerTwo: "B",
answerCorrect: answerA,
}