Archive · Week 4 · Jan 19 – 25, 2026from 2 items
The Go team accepted a proposal that changes how struct literals can reference embedded fields. The only other item is a blog post summarizing the 2025 Go Developer Survey.
Worth knowinglanguage
Direct reference to embedded fields in struct literals
- What changed
- The spec now allows keyed struct literals to refer directly to fields of embedded struct types (but not embedded pointer types). This generalizes “field names” in struct literals to “field selectors”, unifying struct literals with field assignments.
- Production impact
- The source does not say.
- Try it
- Write a struct with an embedded field and create a keyed literal using the embedded field’s name directly, e.g.
T{A: 1}. - Source
- github.com/golang/go/issues/9859
Explain it and run it
Understand it, then run it
Run it now
// This program demonstrates the new struct literal syntax that allows
// direct reference to embedded fields. It runs on Go 1.27.1.
package main
import "fmt"
type E struct{ A int }
type T struct{ E }
func main() {
// Using the new syntax: we can set A directly in the literal.
v := T{A: 42}
fmt.Println(v.A) // prints 42
}
What it printed when we ran it on Go 1.27.1
42
Run sends this program (for Solidity, the contract and its tests) to our own sandbox, where it is compiled and run once, with no network, and what it printed or the test report comes back here. Nothing is kept. Runs are counted per visitor for the day so everyone gets a turn; the details are on the legal page.
Nice to knowecosystem
Results from the 2025 Go Developer Survey
- What changed
- The blog post reports the 2025 Go Developer Survey results, focusing on developer sentiment towards Go, use cases, challenges, and developer environments.
- Production impact
- The source does not say.
- Try it
- Read the blog post to see how Go is being used and what challenges developers face.
- Source
- go.dev/blog/survey2025
Explain it and run it
Understand it, then run it
Run it now
package main
import "fmt"
func main() {
// The 2025 Go Developer Survey was conducted in September 2025.
// This program simply prints a summary of the survey results.
fmt.Println("2025 Go Developer Survey Summary:")
fmt.Println("- 5,379 developers responded.")
fmt.Println("- 91% are satisfied with Go.")
fmt.Println("- Main use cases: CLIs and API services.")
fmt.Println("- Top challenges: idiomatic Go practices, missing features, module trust.")
}
What it printed when we ran it on Go 1.27.1
2025 Go Developer Survey Summary: - 5,379 developers responded. - 91% are satisfied with Go. - Main use cases: CLIs and API services. - Top challenges: idiomatic Go practices, missing features, module trust.
Run sends this program (for Solidity, the contract and its tests) to our own sandbox, where it is compiled and run once, with no network, and what it printed or the test report comes back here. Nothing is kept. Runs are counted per visitor for the day so everyone gets a turn; the details are on the legal page.
Exercise
Create a struct that embeds another struct and use the new syntax to initialize it with a keyed literal that refers directly to the embedded field.
package main
import "fmt"
type E struct{ A int }
type T struct{ E }
func main() {
// TODO: create a T instance using the new embedded field syntax
fmt.Printf("%+v\n", t)
}
Show a solution
package main
import "fmt"
type E struct{ A int }
type T struct{ E }
func main() {
t := T{A: 1}
fmt.Printf("%+v\n", t)
}
What it printed when we ran it on Go 1.27.1
{E:{A:1}}
Run sends this program (for Solidity, the contract and its tests) to our own sandbox, where it is compiled and run once, with no network, and what it printed or the test report comes back here. Nothing is kept. Runs are counted per visitor for the day so everyone gets a turn; the details are on the legal page.
The 60-second version
Good morning, everyone. This week the Go team made a small but tidy change to the language: you can now write struct literals that refer directly to fields of an embedded struct. Instead of having to write `T{E: E{A: 1}}`, you can simply write `T{A: 1}`. This unifies the syntax for struct literals with how you normally access those fields. The only other item from the week is a blog post that shares the results of the 2025 Go Developer Survey, giving us a snapshot of how developers feel about Go, what they use it for, and the challenges they face. That’s all for this week’s Radar.
Written by gpt-oss-20b · claims checked against the sources · archive, not individually reviewed