bhylu.com

Advertisements

Go Parameters and Returns

Return both the full trays and leftover parcels from one calculation.

How it works

Functions may have several result values. That is useful when the outputs form one logical calculation, and it is also how Go commonly returns a value together with an error. Use clear result names in the calling code rather than ignoring important values.

Run this Go example

Install Go separately from the official Go downloads and check go version in a new terminal. The reviewed baseline is Go 1.27.3 on Windows amd64; the authored syntax and standard-library APIs require Go 1.22 or newer. Save the complete source below as parameters-returns.go in a learning folder, then run go run parameters-returns.go from that folder. These examples use only the standard library.

Bhylu has no Go browser runner. Apache, MySQL, PHP and the JavaScript or Python playground are not required to run these files. File examples own a temporary directory; HTTP client examples create an ephemeral loopback server and close it. They do not contact an external API.

Download the complete parameters-returns.go · Download all source files with hash checks

For the optional collection download, save download-examples.mjs in a new learning folder and run node download-examples.mjs. A local preview uses node download-examples.mjs http://127.0.0.1:8000/examples/go/. The downloader refuses an existing bhylu-go-examples folder and installs or executes no Go code.

Example

parameters-returns.go

package main

import (
	"fmt"
)

func splitTrays(count, size int) (int, int) { return count / size, count % size }

func main() {
	trays, loose := splitTrays(17, 5)
	fmt.Println(trays, loose)
}

Expected result

3 2

Both values come from the same inputs. The precondition is that size is positive; checked public helpers should reject zero before division. Named results are available, but short explicit returns are usually easier for beginners to follow.

For language rules and APIs, use the Go language specification and standard-library documentation. The fictional examples are learning fixtures, not a deployed parcel service.

Advertisements