go-sumtype
go101
go-sumtype | go101 | |
---|---|---|
11 | 41 | |
403 | 5,392 | |
- | - | |
0.0 | 7.3 | |
about 1 year ago | 9 days ago | |
Go | HTML | |
The Unlicense | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-sumtype
-
Small sum types in Golang
I find this implementation to be quite minimal and less clumsy than alternatives. Sure, you don't get nice exhaustive pattern matching. Also, type inference gets in the way when instantiating UserKey (though you can wrap it in constructor functions). But expressing your intent using types still makes your code much more convenient and easier to understand.
-
Switching from C++ to Rust
The call out to sum types is something I feel. I've been using Rust daily for almost 10 years now, and sum types are absolutely still one of the things I love most about it. It's easily one of the things I miss the most in other languages. I'm usually a proponent of "using languages as they're intended," but I missed exhaustiveness checking so much that I ported a version of it to Go[1] as a sort of lint.
[1]: https://github.com/BurntSushi/go-sumtype
-
Rusty enums in Go
A Google search for golang sum types currently shows my project as a second hit: https://github.com/BurntSushi/go-sumtype
-
Carbon Language: An experimental successor to C++
I've been writing Go and Rust nearly daily for about a decade now (Go is more than a decade, Rust is about 8 years). You are not going to teach me anything about the pros and cons of either language in a reddit comment. I do not need to be taught about the "iota mess" when I've written tooling for exhaustiveness checking in Go.
-
a go linter to check switch statements for default
https://github.com/BurntSushi/go-sumtype forces exhaustive type switches for interfaces specifically annotated to need that.
-
Go: Making state explicit using the type system
We can fix these two problems by relying on static analyzers such as go-sumtypes
-
Hacking sum types with Go generics
See also https://github.com/BurntSushi/go-sumtype
- What I'd like to see in Go 2.0
-
Upcoming Features in Go 1.18
go-sumtype[0] has completeness checking for sealed interfaces.
[0] https://github.com/BurntSushi/go-sumtype
-
I want enum more than generics
Pretty easy to achieve outside of the compiler: https://github.com/BurntSushi/go-sumtype
go101
-
The Journey Ahead: My 6-Month Plan to Master GoLang
Go101: An in-depth guide that explores Go's internals, perfect for understanding the language at a deeper level.
- All books in Go 101 series have been updated to Go 1.21
-
Deconstructing Go Type Parameters
Go101 is a jewel of a resource. It’s a spec written by an impartial observer not worried about trying to make golang look good but instead giving you the understanding to avoid all the edge cases
https://go101.org/
- How to learn go from zero?
-
Perfect Golang learning roadmap
How about this: https://go101.org/ might help :)
-
Resources for an experienced programmer wanting to learn Go
Go 101 books, which cover every corner of the language itself (syntax, semantics, compiler and runtime implementation) and make more detailed explanations than the official docs in several points. (Author here)
-
Golang string concatenation performance comparison
Sometimes, reality and theory are not consistent: https://github.com/go101/go101/blob/master/pages/optimizations/code/4-string-and-byte-slice/concat-with-stack-byte-slice_test.go
-
Language specification or just a detailed book on the internals (focused on usage rather than compiler creation)?
How about go 101 ?
- I know JavaScript and looking for Go learning resource
-
Senior engineer here trying to pick up Go for jobs. What resources can you recommend me to cover as much ground as possible
https://go101.org/ - read this.
What are some alternatives?
enumer - A Go tool to auto generate methods for your enums
go - The Go programming language
rustig - A tool to detect code paths leading to Rust's panic handler
hylo - The Hylo programming language
go-perfbook - Thoughts on Go performance optimization
crubit
gopl.io - Example programs from "The Go Programming Language"
mo - 🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)
mangagram - A Telegram bot for new manga chapter alerts. Search for your favorite titles and subscribed to them for alerts.
go-hasdefault - a go linter to check switch statements for default
yaegi - Yaegi is Another Elegant Go Interpreter