非常教程

Go参考手册

图像 | image

图像 | image

  • import "image"
  • 概述
  • 索引
  • 示例
  • 子目录

概述

图像包实现了一个基本的二维图像库。

基本界面被称为图像。图像包含图像/颜色包中描述的颜色。

Image 接口的值可以通过调用诸如 NewRGBA 和 NewPaletted 之类的函数来创建,也可以通过在包含 GIF,JPEG或PNG等格式的图像数据的 io.Reader 上调用 Decode 来创建。解码任何特定的图像格式需要预先注册解码器功能。注册通常是自动的,作为初始化格式包的副作用,因此,要解码 PNG 图像,只需要

import _ "image/png"

在一个程序的主要包装中。意味着纯粹为了初始化副作用导入一个包。

有关更多详细信息,请参阅“Go图像包”:https://golang.org/doc/articles/image_package.html

示例

// 此示例演示如何解码JPEG图像并检查其像素。
package main

import (
	"encoding/base64"
	"fmt"
	"image"
	"log"
	"strings"

	// image/jpeg包未在下面的代码中明确使用,
	// 但导入的初始化副作用允许
	// image.Decode以了解JPEG格式的图像。 取消注释这
	// 两行也能理解GIF和PNG图像:
	// _ "image/gif"
	// _ "image/png"
	_ "image/jpeg"
)

func main() {
	// 解码JPEG数据。 如果从文件中读取,请创建一个阅读器
	// reader, err := os.Open("testdata/video-001.q50.420.jpeg")
	// if err != nil {
	//     log.Fatal(err)
	// }
	// defer reader.Close()
	reader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(data))
	m, _, err := image.Decode(reader)
	if err != nil {
		log.Fatal(err)
	}
	bounds := m.Bounds()

	// 计算m的红色,绿色,蓝色和alpha分量的16-bin直方图。
	//
	// 图像的边界不一定从(0,0)开始,因此两个循环开始
	// 在bounds.Min.Y和bounds.Min.X。 首先循环Y和X秒更多
	// 可能导致比X first和Y second更好的内存访问模式。
	var histogram [16][4]int
	for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
		for x := bounds.Min.X; x < bounds.Max.X; x++ {
			r, g, b, a := m.At(x, y).RGBA()
			// 颜色的RGBA方法返回[0,65535]范围内的值。
			// 移位12将其减小到[0,15] .g的范围
			histogram[r>>12][0]++
			histogram[g>>12][1]++
			histogram[b>>12][2]++
			histogram[a>>12][3]++
		}
	}

	// 打印结果。
	fmt.Printf("%-14s %6s %6s %6s %6s\n", "bin", "red", "green", "blue", "alpha")
	for i, x := range histogram {
		fmt.Printf("0x%04x-0x%04x: %6d %6d %6d %6d\n", i<<12, (i+1)<<12-1, x[0], x[1], x[2], x[3])
	}
}

const data = `
/9j/4AAQSkZJRgABAQIAHAAcAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdA
SFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2Nj
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCABnAJYDASIAAhEBAxEB/8QA
HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDlwKMD0pwzSiuK57QzGDxS7D6in8Y5ximnAPUfSlcq4m3ilUYp
2OKXHvRcVxnTtS7c07HNFK4DQPakC4PNOA+tOx70XAjK/So5gBGP94fzqfvUVx/qxx/EP51UXqRP4WSE
cmgjilP3jSEZqS0IO/NGDnpUiocDg/McDjvV6HTPOdVWYgsM5KcfzzQ2JySM2jp6VYu7SWzmMUwG4cgj
kMPUVBjjtTGtRu0Zopw+lFFxhinrGzuqqMsxAA9yaXFSRv5cqSEcIwYj6GpuZ30O30fSLKzhUpbpNMv3
5XGTn29BV28jt7pPLuIVljPBBFVreYx+VbqAjycgt3x14zRcNOxGyVFHQkIc/wA61exyKLbuzjdZ046d
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
`

索引

  • 变量
  • func RegisterFormat(name, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))
  • type Alpha
  • func NewAlpha(r Rectangle) *Alpha
  • func (p *Alpha) AlphaAt(x, y int) color.Alpha
  • func (p *Alpha) At(x, y int) color.Color
  • func (p *Alpha) Bounds() Rectangle
  • func (p *Alpha) ColorModel() color.Model
  • func (p *Alpha) Opaque() bool
  • func (p *Alpha) PixOffset(x, y int) int
  • func (p *Alpha) Set(x, y int, c color.Color)
  • func (p *Alpha) SetAlpha(x, y int, c color.Alpha)
  • func (p *Alpha) SubImage(r Rectangle) Image
  • type Alpha16
  • func NewAlpha16(r Rectangle) *Alpha16
  • func (p *Alpha16) Alpha16At(x, y int) color.Alpha16
  • func (p *Alpha16) At(x, y int) color.Color
  • func (p *Alpha16) Bounds() Rectangle
  • func (p *Alpha16) ColorModel() color.Model
  • func (p *Alpha16) Opaque() bool
  • func (p *Alpha16) PixOffset(x, y int) int
  • func (p *Alpha16) Set(x, y int, c color.Color)
  • func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)
  • func (p *Alpha16) SubImage(r Rectangle) Image
  • type CMYK
  • func NewCMYK(r Rectangle) *CMYK
  • func (p *CMYK) At(x, y int) color.Color
  • func (p *CMYK) Bounds() Rectangle
  • func (p *CMYK) CMYKAt(x, y int) color.CMYK
  • func (p *CMYK) ColorModel() color.Model
  • func (p *CMYK) Opaque() bool
  • func (p *CMYK) PixOffset(x, y int) int
  • func (p *CMYK) Set(x, y int, c color.Color)
  • func (p *CMYK) SetCMYK(x, y int, c color.CMYK)
  • func (p *CMYK) SubImage(r Rectangle) Image
  • type Config
  • func DecodeConfig(r io.Reader) (Config, string, error)
  • type Gray
  • func NewGray(r Rectangle) *Gray
  • func (p *Gray) At(x, y int) color.Color
  • func (p *Gray) Bounds() Rectangle
  • func (p *Gray) ColorModel() color.Model
  • func (p *Gray) GrayAt(x, y int) color.Gray
  • func (p *Gray) Opaque() bool
  • func (p *Gray) PixOffset(x, y int) int
  • func (p *Gray) Set(x, y int, c color.Color)
  • func (p *Gray) SetGray(x, y int, c color.Gray)
  • func (p *Gray) SubImage(r Rectangle) Image
  • type Gray16
  • func NewGray16(r Rectangle) *Gray16
  • func (p *Gray16) At(x, y int) color.Color
  • func (p *Gray16) Bounds() Rectangle
  • func (p *Gray16) ColorModel() color.Model
  • func (p *Gray16) Gray16At(x, y int) color.Gray16
  • func (p *Gray16) Opaque() bool
  • func (p *Gray16) PixOffset(x, y int) int
  • func (p *Gray16) Set(x, y int, c color.Color)
  • func (p *Gray16) SetGray16(x, y int, c color.Gray16)
  • func (p *Gray16) SubImage(r Rectangle) Image
  • type Image
  • func Decode(r io.Reader) (Image, string, error)
  • type NRGBA
  • func NewNRGBA(r Rectangle) *NRGBA
  • func (p *NRGBA) At(x, y int) color.Color
  • func (p *NRGBA) Bounds() Rectangle
  • func (p *NRGBA) ColorModel() color.Model
  • func (p *NRGBA) NRGBAAt(x, y int) color.NRGBA
  • func (p *NRGBA) Opaque() bool
  • func (p *NRGBA) PixOffset(x, y int) int
  • func (p *NRGBA) Set(x, y int, c color.Color)
  • func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)
  • func (p *NRGBA) SubImage(r Rectangle) Image
  • type NRGBA64
  • func NewNRGBA64(r Rectangle) *NRGBA64
  • func (p *NRGBA64) At(x, y int) color.Color
  • func (p *NRGBA64) Bounds() Rectangle
  • func (p *NRGBA64) ColorModel() color.Model
  • func (p *NRGBA64) NRGBA64At(x, y int) color.NRGBA64
  • func (p *NRGBA64) Opaque() bool
  • func (p *NRGBA64) PixOffset(x, y int) int
  • func (p *NRGBA64) Set(x, y int, c color.Color)
  • func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)
  • func (p *NRGBA64) SubImage(r Rectangle) Image
  • type NYCbCrA
  • func NewNYCbCrA(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA
  • func (p *NYCbCrA) AOffset(x, y int) int
  • func (p *NYCbCrA) At(x, y int) color.Color
  • func (p *NYCbCrA) ColorModel() color.Model
  • func (p *NYCbCrA) NYCbCrAAt(x, y int) color.NYCbCrA
  • func (p *NYCbCrA) Opaque() bool
  • func (p *NYCbCrA) SubImage(r Rectangle) Image
  • type Paletted
  • func NewPaletted(r Rectangle, p color.Palette) *Paletted
  • func (p *Paletted) At(x, y int) color.Color
  • func (p *Paletted) Bounds() Rectangle
  • func (p *Paletted) ColorIndexAt(x, y int) uint8
  • func (p *Paletted) ColorModel() color.Model
  • func (p *Paletted) Opaque() bool
  • func (p *Paletted) PixOffset(x, y int) int
  • func (p *Paletted) Set(x, y int, c color.Color)
  • func (p *Paletted) SetColorIndex(x, y int, index uint8)
  • func (p *Paletted) SubImage(r Rectangle) Image
  • type PalettedImage
  • type Point
  • func Pt(X, Y int) Point
  • func (p Point) Add(q Point) Point
  • func (p Point) Div(k int) Point
  • func (p Point) Eq(q Point) bool
  • func (p Point) In(r Rectangle) bool
  • func (p Point) Mod(r Rectangle) Point
  • func (p Point) Mul(k int) Point
  • func (p Point) String() string
  • func (p Point) Sub(q Point) Point
  • type RGBA
  • func NewRGBA(r Rectangle) *RGBA
  • func (p *RGBA) At(x, y int) color.Color
  • func (p *RGBA) Bounds() Rectangle
  • func (p *RGBA) ColorModel() color.Model
  • func (p *RGBA) Opaque() bool
  • func (p *RGBA) PixOffset(x, y int) int
  • func (p *RGBA) RGBAAt(x, y int) color.RGBA
  • func (p *RGBA) Set(x, y int, c color.Color)
  • func (p *RGBA) SetRGBA(x, y int, c color.RGBA)
  • func (p *RGBA) SubImage(r Rectangle) Image
  • type RGBA64
  • func NewRGBA64(r Rectangle) *RGBA64
  • func (p *RGBA64) At(x, y int) color.Color
  • func (p *RGBA64) Bounds() Rectangle
  • func (p *RGBA64) ColorModel() color.Model
  • func (p *RGBA64) Opaque() bool
  • func (p *RGBA64) PixOffset(x, y int) int
  • func (p *RGBA64) RGBA64At(x, y int) color.RGBA64
  • func (p *RGBA64) Set(x, y int, c color.Color)
  • func (p *RGBA64) SetRGBA64(x, y int, c color.RGBA64)
  • func (p *RGBA64) SubImage(r Rectangle) Image
  • type Rectangle
  • func Rect(x0, y0, x1, y1 int) Rectangle
  • func (r Rectangle) Add(p Point) Rectangle
  • func (r Rectangle) At(x, y int) color.Color
  • func (r Rectangle) Bounds() Rectangle
  • func (r Rectangle) Canon() Rectangle
  • func (r Rectangle) ColorModel() color.Model
  • func (r Rectangle) Dx() int
  • func (r Rectangle) Dy() int
  • func (r Rectangle) Empty() bool
  • func (r Rectangle) Eq(s Rectangle) bool
  • func (r Rectangle) In(s Rectangle) bool
  • func (r Rectangle) Inset(n int) Rectangle
  • func (r Rectangle) Intersect(s Rectangle) Rectangle
  • func (r Rectangle) Overlaps(s Rectangle) bool
  • func (r Rectangle) Size() Point
  • func (r Rectangle) String() string
  • func (r Rectangle) Sub(p Point) Rectangle
  • func (r Rectangle) Union(s Rectangle) Rectangle
  • type Uniform
  • func NewUniform(c color.Color) *Uniform
  • func (c *Uniform) At(x, y int) color.Color
  • func (c *Uniform) Bounds() Rectangle
  • func (c *Uniform) ColorModel() color.Model
  • func (c *Uniform) Convert(color.Color) color.Color
  • func (c *Uniform) Opaque() bool
  • func (c *Uniform) RGBA() (r, g, b, a uint32)
  • type YCbCr
  • func NewYCbCr(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr
  • func (p *YCbCr) At(x, y int) color.Color
  • func (p *YCbCr) Bounds() Rectangle
  • func (p *YCbCr) COffset(x, y int) int
  • func (p *YCbCr) ColorModel() color.Model
  • func (p *YCbCr) Opaque() bool
  • func (p *YCbCr) SubImage(r Rectangle) Image
  • func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr
  • func (p *YCbCr) YOffset(x, y int) int
  • type YCbCrSubsampleRatio
  • func (s YCbCrSubsampleRatio) String() string

示例

打包

文件包

format.go geom.go image.go names.go ycbcr.go

变量

var (
        // 黑色是不透明的黑色均匀图像。
        Black = NewUniform(color.Black)
        // 白色是不透明的白色均匀图像。
        White = NewUniform(color.White)
        // 透明是完全透明的均匀图像。
        Transparent = NewUniform(color.Transparent)
        // 不透明是完全不透明的均匀图像。
        Opaque = NewUniform(color.Opaque)
)

ErrFormat 表示解码遇到未知格式。

var ErrFormat = errors.New("image: unknown format")

func RegisterFormat(查看源代码)

func RegisterFormat(name, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))

RegisterFormat 注册一个图像格式供 Decode 使用。名称是格式的名称,如“jpeg”或“png”。magic是识别格式编码的前缀。magic字符串串可以包含“?” 通配符,每个匹配任何一个字节。解码是解码编码图像的功能。DecodeConfig 是只解码其配置的功能。

type Alpha(查看源代码)

Alpha 是一个内存中的图像,其 At 方法返回 color.Alpha 值。

type Alpha struct {
        // Pix将图像的像素保持为alpha值。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 1]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewAlpha(查看源代码)

func NewAlpha(r Rectangle) *Alpha

NewAlpha 返回具有给定边界的新 Alpha 图像。

func (*Alpha) AlphaAt(查看源代码)

func (p *Alpha) AlphaAt(x, y int) color.Alpha

func (*Alpha) At(查看源代码)

func (p *Alpha) At(x, y int) color.Color

func (*Alpha) Bounds(查看源代码)

func (p *Alpha) Bounds() Rectangle

func (*Alpha) ColorModel(查看源代码)

func (p *Alpha) ColorModel() color.Model

func (*Alpha) Opaque(查看源代码)

func (p *Alpha) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*Alpha) PixOffset(查看源代码)

func (p *Alpha) PixOffset(x, y int) int

PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。

func (*Alpha) Set(查看源代码)

func (p *Alpha) Set(x, y int, c color.Color)

func (*Alpha) SetAlpha(查看源代码)

func (p *Alpha) SetAlpha(x, y int, c color.Alpha)

func (*Alpha) SubImage(查看源代码)

func (p *Alpha) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type Alpha16(查看源代码)

Alpha16 是一个内存中的图像,其 At 方法返回 color.Alpha16 值。

type Alpha16 struct {
        // Pix将图像的像素保存为big-endian格式的alpha值。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 2]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewAlpha16(查看源代码)

func NewAlpha16(r Rectangle) *Alpha16

NewAlpha16 返回具有给定边界的新 Alpha16 图像。

func (*Alpha16) Alpha16At(查看源代码)

func (p *Alpha16) Alpha16At(x, y int) color.Alpha16

func (*Alpha16) At(查看源代码)

func (p *Alpha16) At(x, y int) color.Color

func (*Alpha16) Bounds(查看源代码)

func (p *Alpha16) Bounds() Rectangle

func (*Alpha16) ColorModel(查看源代码)

func (p *Alpha16) ColorModel() color.Model

func (*Alpha16) Opaque(查看源代码)

func (p *Alpha16) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*Alpha16) PixOffset(查看源代码)

func (p *Alpha16) PixOffset(x, y int) int

PixOffset 返回对应于(x, y) 处像素的 Pix 的第一个元素的索引。

func (*Alpha16) Set(查看源代码)

func (p *Alpha16) Set(x, y int, c color.Color)

func (*Alpha16) SetAlpha16(查看源代码)

func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)

func (*Alpha16) SubImage(查看源代码)

func (p *Alpha16) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type CMYK(查看源代码)

CMYK 是一个内存中的图像,其 At 方法返回 color.CMYK 值。

type CMYK struct {
        // Pix以C,M,Y,K顺序保存图像的像素。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 4]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewCMYK(查看源代码)

func NewCMYK(r Rectangle) *CMYK

NewCMYK 返回具有给定边界的新 CMYK 图像。

func (*CMYK) At(查看源代码)

func (p *CMYK) At(x, y int) color.Color

func (*CMYK) Bounds(查看源代码)

func (p *CMYK) Bounds() Rectangle

func (*CMYK) CMYKAt(查看源代码)

func (p *CMYK) CMYKAt(x, y int) color.CMYK

func (*CMYK) ColorModel(查看源代码)

func (p *CMYK) ColorModel() color.Model

func (*CMYK) Opaque(查看源代码)

func (p *CMYK) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*CMYK) PixOffset(查看源代码)

func (p *CMYK) PixOffset(x, y int) int

PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。

func (*CMYK) Set(查看源代码)

func (p *CMYK) Set(x, y int, c color.Color)

func (*CMYK) SetCMYK(查看源代码)

func (p *CMYK) SetCMYK(x, y int, c color.CMYK)

func (*CMYK) SubImage(查看源代码)

func (p *CMYK) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type Config(查看源代码)

配置保存图像的颜色模型和尺寸。

type Config struct {
        ColorModel    color.Model
        Width, Height int
}

func DecodeConfig(查看源代码)

func DecodeConfig(r io.Reader) (Config, string, error)

DecodeConfig 解码以注册格式编码的图像的颜色模型和尺寸。返回的字符串是格式注册时使用的格式名称。格式注册通常由编解码器专用包中的 init 函数完成。

type Gray(查看源代码)

Gray 是一个内存中的图像,其 At 方法返回 color.Gray 值。

type Gray struct {
        // Pix将图像的像素保持为灰度值。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 1]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewGray(查看源代码)

func NewGray(r Rectangle) *Gray

NewGray 返回给定范围的新灰度图像。

func (*Gray) At(查看源代码)

func (p *Gray) At(x, y int) color.Color

func (*Gray) Bounds(查看源代码)

func (p *Gray) Bounds() Rectangle

func (*Gray) ColorModel(查看源代码)

func (p *Gray) ColorModel() color.Model

func (*Gray) GrayAt(查看源代码)

func (p *Gray) GrayAt(x, y int) color.Gray

func (*Gray) Opaque(查看源代码)

func (p *Gray) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*Gray) PixOffset(查看源代码)

func (p *Gray) PixOffset(x, y int) int

PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。

func (*Gray) Set(查看源代码)

func (p *Gray) Set(x, y int, c color.Color)

func (*Gray) SetGray(查看源代码)

func (p *Gray) SetGray(x, y int, c color.Gray)

func (*Gray) SubImage(查看源代码)

func (p *Gray) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type Gray16(查看源代码)

Gray16 是一个内存中的图像,其 At 方法返回 color.Gray16 值。

type Gray16 struct {
        // Pix将图像的像素保存为big-endian格式的灰度值。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 2]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewGray16(查看源代码)

func NewGray16(r Rectangle) *Gray16

NewGray16 返回一个具有给定边界的新的 Gray16 图像。

func (*Gray16) At(查看源代码)

func (p *Gray16) At(x, y int) color.Color

func (*Gray16) Bounds(查看源代码)

func (p *Gray16) Bounds() Rectangle

func (*Gray16) ColorModel(查看源代码)

func (p *Gray16) ColorModel() color.Model

func (*Gray16) Gray16At(查看源代码)

func (p *Gray16) Gray16At(x, y int) color.Gray16

func (*Gray16) Opaque(查看源代码)

func (p *Gray16) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*Gray16) PixOffset(查看源代码)

func (p *Gray16) PixOffset(x, y int) int

PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。

func (*Gray16) Set(查看源代码)

func (p *Gray16) Set(x, y int, c color.Color)

func (*Gray16) SetGray16(查看源代码)

func (p *Gray16) SetGray16(x, y int, c color.Gray16)

func (*Gray16) SubImage(查看源代码)

func (p *Gray16) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type Image(查看源代码)

图像是颜色的有限长方形网格。颜色值取自颜色模型。

type Image interface {
        // ColorModel返回Image的颜色模型。
        ColorModel() color.Model
        // Bounds返回At可以返回非零颜色的域。
        // 边界不一定包含点(0,0)。
        Bounds() Rectangle
        // 返回(x,y)处像素的颜色。
        // 在(Bounds().Min.X, Bounds().Min.Y)返回网格的左上角像素。
        // 在(Bounds().Max.X-1, Bounds().Max.Y-1) 返回右下角。
        At(x, y int) color.Color
}

func Decode(查看源代码)

func Decode(r io.Reader) (Image, string, error)

Decode 解码已经以注册格式编码的图像。返回的字符串是格式注册时使用的格式名称。格式注册通常由代码专用包中的初始化函数完成。

type NRGBA(查看源代码)

NRGBA 是一个内存中的图像,其 At 方法返回 color.NRGBA 值。

type NRGBA struct {
        // Pix以R,G,B,A顺序保存图像的像素。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 4]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewNRGBA(查看源代码)

func NewNRGBA(r Rectangle) *NRGBA

NewNRGBA 返回具有给定范围的新 NRGBA 图像。

func (*NRGBA) At(查看源代码)

func (p *NRGBA) At(x, y int) color.Color

func (*NRGBA) Bounds(查看源代码)

func (p *NRGBA) Bounds() Rectangle

func (*NRGBA) ColorModel(查看源代码)

func (p *NRGBA) ColorModel() color.Model

func (*NRGBA) NRGBAAt(查看源代码)

func (p *NRGBA) NRGBAAt(x, y int) color.NRGBA

func (*NRGBA) Opaque(查看源代码)

func (p *NRGBA) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*NRGBA) PixOffset(查看源代码)

func (p *NRGBA) PixOffset(x, y int) int

PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。

func (*NRGBA) Set(查看源代码)

func (p *NRGBA) Set(x, y int, c color.Color)

func (*NRGBA) SetNRGBA(查看源代码)

func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)

func (*NRGBA) SubImage(查看源代码)

func (p *NRGBA) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type NRGBA64(查看源代码)

NRGBA64 是一个内存中的图像,其 At 方法返回 color.NRGBA64 值。

type NRGBA64 struct {
        // Pix以R,G,B,A顺序和big-endian格式保存图像的像素。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 8]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewNRGBA64(查看源代码)

func NewNRGBA64(r Rectangle) *NRGBA64

NewNRGBA64 返回具有给定边界的新 NRGBA64 图像。

func (*NRGBA64) At(查看源代码)

func (p *NRGBA64) At(x, y int) color.Color

func (*NRGBA64) Bounds(查看源代码)

func (p *NRGBA64) Bounds() Rectangle

func (*NRGBA64) ColorModel(查看源代码)

func (p *NRGBA64) ColorModel() color.Model

func (*NRGBA64) NRGBA64At(查看源代码)

func (p *NRGBA64) NRGBA64At(x, y int) color.NRGBA64

func (*NRGBA64) Opaque(查看源代码)

func (p *NRGBA64) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*NRGBA64) PixOffset(查看源代码)

func (p *NRGBA64) PixOffset(x, y int) int

PixOffset 返回 Pix 的第一个元素的索引,该索引对应于 (x, y) 处的像素。

func (*NRGBA64) Set(查看源代码)

func (p *NRGBA64) Set(x, y int, c color.Color)

func (*NRGBA64) SetNRGBA64(查看源代码)

func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)

func (*NRGBA64) SubImage(查看源代码)

func (p *NRGBA64) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type NYCbCrA(查看源代码)

NYCbCrA 是非 alpha 预乘 Y'CbCr-alpha 颜色的内存映像。A 和 AStride 类似于嵌入式 YCbCr 的 Y 和 YStride 字段。

type NYCbCrA struct {
        YCbCr
        A       []uint8
        AStride int
}

func NewNYCbCrA(查看源代码)

func NewNYCbCrA(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA

NewNYCbCrA 返回具有给定边界和子采样比率的新 NYCbCrA 图像。

func (*NYCbCrA) AOffset(查看源代码)

func (p *NYCbCrA) AOffset(x, y int) int

AOffset 返回对应于 (x, y) 处像素的 A 的第一个元素的索引。

func (*NYCbCrA) At(查看源代码)

func (p *NYCbCrA) At(x, y int) color.Color

func (*NYCbCrA) ColorModel(查看源代码)

func (p *NYCbCrA) ColorModel() color.Model

func (*NYCbCrA) NYCbCrAAt(查看源代码)

func (p *NYCbCrA) NYCbCrAAt(x, y int) color.NYCbCrA

func (*NYCbCrA) Opaque(查看源代码)

func (p *NYCbCrA) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*NYCbCrA) SubImage(查看源代码)

func (p *NYCbCrA) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type Paletted(查看源代码)

Paletted 是指定调色板中 uint8 索引的内存映像。

type Paletted struct {
        // Pix将图像的像素保存为调色板索引。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 1]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
        // 调色板是图像的调色板。
        Palette color.Palette
}

func NewPaletted(查看源代码)

func NewPaletted(r Rectangle, p color.Palette) *Paletted

NewPaletted 用给定的宽度,高度和调色板返回一个新的 Paletted 图像。

func (*Paletted) At(查看源代码)

func (p *Paletted) At(x, y int) color.Color

func (*Paletted) Bounds(查看源代码)

func (p *Paletted) Bounds() Rectangle

func (*Paletted) ColorIndexAt(查看源代码)

func (p *Paletted) ColorIndexAt(x, y int) uint8

func (*Paletted) ColorModel(查看源代码)

func (p *Paletted) ColorModel() color.Model

func (*Paletted) Opaque(查看源代码)

func (p *Paletted) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*Paletted) PixOffset(查看源代码)

func (p *Paletted) PixOffset(x, y int) int

PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。

func (*Paletted) Set(查看源代码)

func (p *Paletted) Set(x, y int, c color.Color)

func (*Paletted) SetColorIndex(查看源代码)

func (p *Paletted) SetColorIndex(x, y int, index uint8)

func (*Paletted) SubImage(查看源代码)

func (p *Paletted) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type PalettedImage(查看源代码)

PalettedImage 是一种图像,其颜色可能来自有限的调色板。如果 m 是 PalettedImage并且 m.ColorModel() 返回一个 color.Palette p,则 m.At(x,y) 应该等于pm.ColorIndexAt(x,y) 。如果 m 的颜色模型不是 color.Palette,那么 ColorIndexAt 的行为是未定义的。

type PalettedImage interface {
        // ColorIndexAt返回(x,y)处像素的调色板索引。
        ColorIndexAt(x, y int) uint8
        Image
}

type Point(查看源代码)

一个点是一个 X,Y 坐标对。轴向右和向下增加。

type Point struct {
        X, Y int
}

ZP是零点。

var ZP Point

func Pt(查看源代码)

func Pt(X, Y int) Point

Pt是Point {X,Y}的简写。

func (Point) Add(查看源代码)

func (p Point) Add(q Point) Point

添加返回向量 p+q。

func (Point) Div(查看源代码)

func (p Point) Div(k int) Point

Div返回向量 p/k。

func (Point) Eq(查看源代码)

func (p Point) Eq(q Point) bool

Eq 报告 p 和 q 是否相等。

func (Point) In(查看源代码)

func (p Point) In(r Rectangle) bool

在报告中 p 是否在 r 中。

func (Point) Mod(查看源代码)

func (p Point) Mod(r Rectangle) Point

Mod 返回 r 中的点 q,使得 p.X-q.X 是 r 的宽度的倍数,并且 p.Y-q.Y 是 r 的高度的倍数。

func (Point) Mul(查看源代码)

func (p Point) Mul(k int) Point

Mul 返回向量 p*k。

func (Point) String(查看源代码)

func (p Point) String() string

String返回p的字符串表示形式,如“(3,4)”。

func (Point) Sub(查看源代码)

func (p Point) Sub(q Point) Point

Sub 返回向量 pq。

type RGBA(查看源代码)

RGBA 是一个内存中的图像,其 At 方法返回 color.RGBA 值。

type RGBA struct {
        // Pix以R,G,B,A顺序保存图像的像素。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 4]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewRGBA(查看源代码)

func NewRGBA(r Rectangle) *RGBA

NewRGBA 返回具有给定边界的新 RGBA 图像。

func (*RGBA) At(查看源代码)

func (p *RGBA) At(x, y int) color.Color

func (*RGBA) Bounds(查看源代码)

func (p *RGBA) Bounds() Rectangle

func (*RGBA) ColorModel(查看源代码)

func (p *RGBA) ColorModel() color.Model

func (*RGBA) Opaque(查看源代码)

func (p *RGBA) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*RGBA) PixOffset(查看源代码)

func (p *RGBA) PixOffset(x, y int) int

PixOffset 返回对应于 (x,y) 处像素的 Pix 的第一个元素的索引。

func (*RGBA) RGBAAt(查看源代码)

func (p *RGBA) RGBAAt(x, y int) color.RGBA

func (*RGBA) Set(查看源代码)

func (p *RGBA) Set(x, y int, c color.Color)

func (*RGBA) SetRGBA(查看源代码)

func (p *RGBA) SetRGBA(x, y int, c color.RGBA)

func (*RGBA) SubImage(查看源代码)

func (p *RGBA) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type RGBA64(查看源代码)

RGBA64 是一个内存中的图像,其 At 方法返回 color.RGBA64 值。

type RGBA64 struct {
        // Pix以R,G,B,A顺序和big-endian格式保存图像的像素。 像素在
        // (x,y)从Pix [(y-Rect.Min.Y)* Stride +(x-Rect.Min.X)* 8]开始。
        Pix []uint8
        // Stride是垂直相邻像素之间的Pix步幅(以字节为单位)。
        Stride int
        // Rect是图像的边界。
        Rect Rectangle
}

func NewRGBA64(查看源代码)

func NewRGBA64(r Rectangle) *RGBA64

NewRGBA64 返回具有给定边界的新 RGBA64 图像。

func (*RGBA64) At(查看源代码)

func (p *RGBA64) At(x, y int) color.Color

func (*RGBA64) Bounds(查看源代码)

func (p *RGBA64) Bounds() Rectangle

func (*RGBA64) ColorModel(查看源代码)

func (p *RGBA64) ColorModel() color.Model

func (*RGBA64) Opaque(查看源代码)

func (p *RGBA64) Opaque() bool

不透明扫描整个图像并报告它是否完全不透明。

func (*RGBA64) PixOffset(查看源代码)

func (p *RGBA64) PixOffset(x, y int) int

PixOffset 返回对应于 (x,y) 处像素的 Pix 的第一个元素的索引。

func (*RGBA64) RGBA64At(查看源代码)

func (p *RGBA64) RGBA64At(x, y int) color.RGBA64

func (*RGBA64) Set(查看源代码)

func (p *RGBA64) Set(x, y int, c color.Color)

func (*RGBA64) SetRGBA64(查看源代码)

func (p *RGBA64) SetRGBA64(x, y int, c color.RGBA64)

func (*RGBA64) SubImage(查看源代码)

func (p *RGBA64) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

type Rectangle(查看源代码)

矩形包含 Min.X <= X <Max.X,Min.Y <= Y <Max.Y 的点。如果 Min.X <= Max.X,并且对于 Y 也是一样,那么它是良构的。点总是良构的。矩形的方法总是为格式良好的输入返回格式良好的输出。

矩形也是一个图像,其边界是矩形本身。返回 color.Opaque 矩形和颜色中的点,否则返回透明。

type Rectangle struct {
        Min, Max Point
}

ZR是零矩形。

var ZR Rectangle

func Rect(查看源代码)

func Rect(x0, y0, x1, y1 int) Rectangle

Rect 是矩形 {Pt(x0, y0), Pt(x1, y1)} 的简写。如果需要,返回的矩形将交换最小和最大坐标,以使其格式良好。

func (Rectangle) Add(查看源代码)

func (r Rectangle) Add(p Point) Rectangle

Add 返回由 p 翻译的矩形 r。

func (Rectangle) At(查看源代码)

func (r Rectangle) At(x, y int) color.Color

At 实现 Image 界面。

func (Rectangle) Bounds(查看源代码)

func (r Rectangle) Bounds() Rectangle

Bounds实现了图像界面。

func (Rectangle) Canon(查看源代码)

func (r Rectangle) Canon() Rectangle

Canon返回r的规范版本。如果需要,返回的矩形将交换最小和最大坐标,以使其格式良好。

func (Rectangle) ColorModel(查看源代码)

func (r Rectangle) ColorModel() color.Model

ColorModel 实现了 Image 界面。

func (Rectangle) Dx(查看源代码)

func (r Rectangle) Dx() int

Dx 返回 r 的宽度。

func (Rectangle) Dy(查看源代码)

func (r Rectangle) Dy() int

Dy 返回 r 的高度。

func (Rectangle) Empty(查看源代码)

func (r Rectangle) Empty() bool

空报告矩形是否不包含点。

func (Rectangle) Eq(查看源代码)

func (r Rectangle) Eq(s Rectangle) bool

Eq 报告 r 和 s 是否包含相同的一组点。所有空矩形都被认为是相等的。

func (Rectangle) In(查看源代码)

func (r Rectangle) In(s Rectangle) bool

In 报告 r 中的每个点是否在 s 中。

func (Rectangle) Inset(查看源代码)

func (r Rectangle) Inset(n int) Rectangle

Inset 返回 n 的矩形 r,这可能是负数。如果 r的任何一个维度小于2*n,则 r 中心附近的空矩形将被返回。

func (Rectangle) Intersect(查看源代码)

func (r Rectangle) Intersect(s Rectangle) Rectangle

Intersect 返回 r 和 s 所包含的最大矩形。如果两个矩形不重叠,则返回零矩形。

func (Rectangle) Overlaps(查看源代码)

func (r Rectangle) Overlaps(s Rectangle) bool

Overlaps 报告 r 和 s 是否有非空的相交。

func (Rectangle) Size(查看源代码)

func (r Rectangle) Size() Point

Size 返回 r 的宽度和高度。

func (Rectangle) String(查看源代码)

func (r Rectangle) String() string

字符串返回r的字符串表示形式,如“(3,4)-(6,5)”。

func (Rectangle) Sub(查看源代码)

func (r Rectangle) Sub(p Point) Rectangle

Sub 返回由 -p 转换的矩形 r。

func (Rectangle) Union(查看源代码)

func (r Rectangle) Union(s Rectangle) Rectangle

Union 返回包含 r 和 s 的最小矩形。

type Uniform(查看源代码)

Uniform 是统一颜色的无限大小的图像。它实现了 color.Color,color.Model 和 Image 接口。

type Uniform struct {
        C color.Color
}

func NewUniform(查看源代码)

func NewUniform(c color.Color) *Uniform

func (*Uniform) At(查看源代码)

func (c *Uniform) At(x, y int) color.Color

func (*Uniform) Bounds(查看源代码)

func (c *Uniform) Bounds() Rectangle

func (*Uniform) ColorModel(查看源代码)

func (c *Uniform) ColorModel() color.Model

func (*Uniform) Convert(查看源代码)

func (c *Uniform) Convert(color.Color) color.Color

func (*Uniform) Opaque(查看源代码)

func (c *Uniform) Opaque() bool

Opaque 扫描整个图像并报告它是否完全不透明。

func (*Uniform) RGBA(查看源代码)

func (c *Uniform) RGBA() (r, g, b, a uint32)

type YCbCr(查看源代码)

YCbCr 是 Y'CbCr 颜色的内存映像。每像素有一个 Y 采样,但每个 Cb 和 Cr 采样可以跨越一个或多个像素。YStride 是垂直相邻像素之间的 Y 切片索引增量。CStride 是映射到分离色度样本的垂直相邻像素之间的 Cb 和 Cr 切片索引增量。这不是绝对的要求,但 YStride 和 len(Y) 通常是8的倍数,并且:

For 4:4:4, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/1.
For 4:2:2, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/2.
For 4:2:0, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/4.
For 4:4:0, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/2.
For 4:1:1, CStride == YStride/4 && len(Cb) == len(Cr) == len(Y)/4.
For 4:1:0, CStride == YStride/4 && len(Cb) == len(Cr) == len(Y)/8.
type YCbCr struct {
        Y, Cb, Cr      []uint8
        YStride        int
        CStride        int
        SubsampleRatio YCbCrSubsampleRatio
        Rect           Rectangle
}

func NewYCbCr(查看源代码)

func NewYCbCr(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr

NewYCbCr 返回具有给定边界和子采样比率的新 YCbCr 图像。

func (*YCbCr) At(查看源代码)

func (p *YCbCr) At(x, y int) color.Color

func (*YCbCr) Bounds(查看源代码)

func (p *YCbCr) Bounds() Rectangle

func (*YCbCr) COffset(查看源代码)

func (p *YCbCr) COffset(x, y int) int

COffset 返回对应于 (x,y) 处像素的 Cb 或 Cr 的第一个元素的索引。

func (*YCbCr) ColorModel(查看源代码)

func (p *YCbCr) ColorModel() color.Model

func (*YCbCr) Opaque(查看源代码)

func (p *YCbCr) Opaque() bool

func (*YCbCr) SubImage(查看源代码)

func (p *YCbCr) SubImage(r Rectangle) Image

SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。

func (*YCbCr) YCbCrAt(查看源代码)

func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr

func (*YCbCr) YOffset(查看源代码)

func (p *YCbCr) YOffset(x, y int) int

YOffset 返回对应于 (x,y) 处像素的 Y 的第一个元素的索引。

type YCbCrSubsampleRatio(查看源代码)

YCbCrSubsampleRatio 是 YCbCr 图像中使用的色度子采样比率。

type YCbCrSubsampleRatio int
const (
        YCbCrSubsampleRatio444 YCbCrSubsampleRatio = iota
        YCbCrSubsampleRatio422
        YCbCrSubsampleRatio420
        YCbCrSubsampleRatio440
        YCbCrSubsampleRatio411
        YCbCrSubsampleRatio410
)

func (YCbCrSubsampleRatio) String(查看源代码)

func (s YCbCrSubsampleRatio) String() string

子目录

Name

Synopsis

color

包装颜色实现了一个基本的颜色库。

palette

包调色板提供标准调色板。

draw

包提取提供图像合成功能。

gif

包gif实现了一个GIF图像解码器和编码器。

jpeg

包jpeg实现了一个JPEG图像解码器和编码器。

png

包png实现了一个PNG图像解码器和编码器。

Go

Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。

主页 https://golang.org/
源码 https://go.googlesource.com/go
发布版本 1.9.2

Go目录

1.档案 | archive
2.缓冲区 | bufio
3.内置 | builtin
4.字节 | bytes
5.压缩 | compress
6.容器 | container
7.上下文 | context
8.加密 | crypto
9.数据库 | database
10.调试 | debug
11.编码 | encoding
12.错误 | errors
13. expvar
14.flag
15. fmt
16. go
17.散列 | hash
18.html
19.图像 | image
20.索引 | index
21.io
22.日志 | log
23.数学 | math
24. math/big
25.math/bits
26.math/cmplx
27.math/rand
28.拟态 | mime
29.net
30.net/http
31. net/mail
32. net/rpc
33.net/smtp
34. net/textproto
35. net/url
36.os
37.路径 | path
38.插件 | plugin
39.反射 | reflect
40.正则表达式 | regexp
41.运行时 | runtime
42.排序算法 | sort
43.转换 | strconv
44.字符串 | strings
45.同步 | sync
46.系统调用 | syscall
47.测试 | testing
48.文本 | text
49.时间戳 | time
50.unicode
51.不安全性 | unsafe
52.Go 语言数据类型
53.Go 语言基础语法
54.Go 语言结构
55.Go 语言 select 语句
56.Go 语言 switch 语句
57.Go 语言 if 语句嵌套
58.Go 语言 if…else 语句
59.Go 语言 if 语句
60.Go 语言运算符
61.Go 语言常量
62.Go 语言函数闭包
63.Go 语言函数作为实参
64.Go 语言函数引用传递值
65.Go 语言函数值传递值
66.Go 语言函数
67.Go 语言 goto 语句
68.Go 语言 continue 语句
69.Go 语言 break 语句
70.Go 语言循环嵌套
71.Go 语言 for 循环
72.Go 语言结构体
73.Go 语言指针作为函数参数
74.Go 语言指向指针的指针
75.Go 语言指针数组
76.Go 语言指针
77.Go 语言向函数传递数组
78.Go 语言多维数组
79.Go 语言变量作用域
80.Go 语言函数方法
81.Go 错误处理
82.Go 语言接口
83.Go 语言类型转换
84.Go 语言递归函数
85.Go 语言Map(集合)
86.Go 语言范围(Range)
87.Go 语言切片(Slice)
88.Go 并发
89.Go fmt.Sprintf 格式化字符串