Go cơ bản

Go Functions and Multiple Return Values

Functions in Go can return several values. Learn the result-and-error pattern and variadic parameters.

  • Cơ bản
  • Đọc trong 4 phút
  • 1 ví dụ chạy được
Bạn sẽ học được gì
  • Parameters and results
  • Returning a value and an error
  • Variadic functions
divide(a, b)
divide(10, 4)2.5, nil
divide(1, 0)0, "cannot divide by zero"

A result and an error

A function groups code under a name. Go functions can return several values, and the usual pattern is to return a result together with an error.

divide returns the result and an error; nil means there was no error. The underscore ignores a value you do not need. numbers ...int accepts any number of integers, and the named result total is returned by the bare return.

Những điểm quan trọng

  1. A function can return more than one value.
  2. nil means there was no error.
  3. _ ignores a value you do not need.

Ví dụ Go chạy được

Go
Chạy code →
main.go
package main

import (
	"errors"
	"fmt"
)

func area(width, height int) int {
	return width * height
}

func divide(a, b float64) (float64, error) {
	if b == 0 {
		return 0, errors.New("cannot divide by zero")
	}
	return a / b, nil
}

func sum(numbers ...int) (total int) {
	for _, n := range numbers {
		total += n
	}
	return
}

func main() {
	fmt.Println(area(4, 5))

	if result, err := divide(10, 4); err == nil {
		fmt.Println(result)
	}
	_, err := divide(1, 0)
	fmt.Println(err)

	fmt.Println(sum(1, 2, 3, 4))
}
Lấy nút Run cho ví dụ này Kết quả khi chạy
20
2.5
cannot divide by zero
10

Luyện tập

Mở ví dụ trong trình biên dịch online, đổi một giá trị hoặc thêm một dòng, rồi đoán kết quả trước khi chạy. Sau đó cố ý làm code bị lỗi và đọc thông báo của trình biên dịch.

Bạn học xong bài này chưa?

Đánh dấu đã học để theo dõi tiến độ của bạn.

Tiếp theo: Fibonacci Sequence →

Luyện tập với thử thách

Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.

Tất cả thử thách