| Age | Commit message (Collapse) | Author |
|
|
|
Go 1.22 now support for-range on numeric value.
|
|
|
|
HTTP request now implicitly create request with context.
Any false positive related to not closing HTTP response body has been
annotated with "nolint:bodyclose".
In the example code, use consistent "// Output:" comment format, by
prefixing with single space.
Any comment on code now also prefixing with single space.
An error returned without variables now use [errors.New] instead of
[fmt.Errorf].
Any error returned using [fmt.Errorf] now wrapped using "%w" instead of
"%s".
Also, replace error checking using [errors.Is] or [errors.As], instead
of using equal/not-equal operator.
Any statement like "x = x OP y" now replaced with "x OP= y".
Also, swap statement is simplified using "x, y = y, x".
Any switch statement with single case now replaced with if-condition.
Any call to defer on function or program that call [os.Exit], now
replaced by calling the deferred function directly.
Any if-else condition now replaced with switch statement, if possible.
|
|
There are several reasons that why we move from github.com.
First, related to the name of package.
We accidentally name the package with "share" a common word in English
that does not reflect the content of repository.
By moving to other repository, we can rename it to better and unique
name, in this "pakakeh.go".
Pakakeh is Minang word for tools, and ".go" suffix indicate that the
repository related to Go programming language.
Second, supporting open source.
The new repository is hosted under sourcehut.org, the founder is known
to support open source, and all their services are licensed under AGPL,
unlike GitHub that are closed sources.
Third, regarding GitHub CoPilot.
The GitHub Terms of Service [1], allow any public content that are hosted
there granted them to parse the content.
On one side, GitHub helps and flourish the open source, but on another
side have an issues regarding scraping the copyleft license [2].
[1]: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service#4-license-grant-to-us
[2]: https://githubcopilotinvestigation.com
|
|
Package name in test Example should be different with the actual package.
This is to minimize leaking un-exported function or method in Example
test.
|
|
A struct's field tagged with `noequal:""`, its value will not be
processed for equality.
|
|
The third, boolean, return value is redundant with the second error value.
|
|
The Marshal function marshal the obj value to []byte by calling one of
the method: MarshalBinary, MarshalJSON, or MarshalText; in respective
order.
If obj implement one of the method with valid signature, it will return
(out, nil, true);
unless there is an error.
If the method signature invalid it will return (nil, err, false).
If obj is nil or none of the method exist it will return
(nil, nil, false).
|
|
|
|
If field tagged with "-" the Tag function will return empty value,
nil options, and false.
|
|
The Set function set the obj value by converting the string val from
parameter to the obj type.
If the obj is an interface or struct, its value will be set by calling
Unmarshal.
It will return an error if,
- obj is not setable, variable is passed without pointer or pointer
not initialized.
- val is overflow
- obj Kind is Invalid, Array, Chan, Func, Map, or UnsafePointer.
|
|
No need to prefix the filename with the package name itself.
|