Go笔记--基本语法(数据类型)

Go的数据类型

基本数据类型:整型、浮点型、布尔型、字符串型

复杂数据类型:切片、结构体、函数、map、通道(channel)等

整型

int8/int16/int32/int64

uint8/uint16/uint32/uint64

浮点型

float32/float64

package main

import {
    "fmt"
    "math"
}

func main() {
    fmt.Printf("%f\n", math.Pi) // 3.141593
    
    fmt.Printf("%.2f\n", math.Pi) // 3.14
}

示例:输出正弦函数(sin)图像

package main

import (
	"image"
	"image/color"
	"image/png"
	"log"
	"math"
	"os"
)

var mode = flag.String("mode", "", "process mode")

func main()  {
	Sin()
}

func Sin()  {
    // 设置画布大小
	const size = 300

    // 创建给定大小的灰度图
	pic := image.NewGray(image.Rect(0, 0, size, size))

    // 遍历每个像素
	for x := 0; x< size; x++ {
		for y := 0; y < size; y++ {
			pic.SetGray(x, y, color.Gray{255})
		}
	}
    // 从0到最大像素生成x坐标
	for k := 0; k < size; k++ {
        // 让sin的值范围在0~2π之间
		s := float64(k) * 2 *math.Pi / size

        // sin的幅度为一半的像素。向下偏移一半像素并翻转
		t := size/2 - math.Sin(s)*size/2

        // 用黑色绘制sin轨迹
		pic.SetGray(k, int(t), color.Gray{0})
	}

    // 创建文件
	file, err := os.Create("sin.png")

	if err != nil {
		log.Fatal(err)
	}

    // 使用PNG格式将数据写入文件
	png.Encode(file, pic)

    // 关闭文件
	file.Close()
}

布尔型

布尔型不参与数值运算,也无法与其他类型进行转换

字符串

字符串为双引号里的内容

str := "hello world"
cn := "你好世界"

转义符

Go字符串转义符
转移符 含义
\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\t 制表符
\' 单引号
\" 双引号
\\ 反斜杠
str := "str = \"d:\\Go\\bin\\go.exe\""

定义多行字符串:反引号包裹“`”,原样输出,所有的转转义符均无效,适合模版定义

str := `第一行
哈哈哈
\r\n
`

字符:

一种是uint8型,也叫byte型,代表ASCII码的一个字符

另一种是rune类型,实际上是一个int32代表一个UTF-8字符

 

切片

切片是一个拥有相同类型元素的可变长度的序列。

// var name []T
// T代表元素类型

a := make([]int, 3)
a[0] = 1
a[1] = 2

fmt.Println(a) // [1 2 0]

不同数据类型的转换

T(表达式)

var a int32 = 2

b := float32(a)

fmt.Printf("a: %d,b:%f", a, b) //a: 2,b:2.000000

 

你可能感兴趣的:(Go,笔记,Go数据类型,Go)