1.整型
- 按长度分为int8, int16, int32, int64
- 对应无符号数uint8, uint16, uint32, uint64
Go用int和uint自动匹配特定平台的整型长度(大多为64位)
※在二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同平台的字节长度变化的影响,不要用int和uint
2.浮点型
- 按长度:float32,float64
package main
import(
"fmt"
"math"
)
func main() {
fmt.Printf("%f\n",math.Pi)//默认长度,换一行,输出PI
fmt.Printf("%.3f",math.Pi)//3位精度,不换行,输出PI
}
3.输出Sin(正弦函数)图像
※灰度图的O点在左上角,我们需要的Math.Sin函数图像O点在左下角,需要做平移变换
package main
import (
"image"
"image/color"
"image/png"
"log"
"math"
"os"
)
func main() {
// 图片大小
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 x := 0; x < size; x++ {
// 让sin的定义域从0~size(300) px ->0~1 px ->0~2Π px
s := float64(x) * (2 * math.Pi) / size//此时图片中包括一个周期的波形,如果改为4*π,将显示两个周期的波形
// sin函数振幅默认为1px,乘以size/2,水平翻转后,下移size/2个像素
y := - math.Sin(s)*size/2 + size/2 //O点在左上角,所以是+size/2
// 用黑色绘制sin轨迹
pic.SetGray(x, int(y), color.Gray{0})
}
// 创建文件
file, err := os.Create("sin.png")
if err != nil {
log.Fatal(err)
}
// 使用png格式将数据写入文件
png.Encode(file, pic) //将image信息写入文件中
// 关闭文件
file.Close()
}
4.字符串
- 采用UTF-8编码
多行字符串,使用双顿号
const str=`
hhh
ggg
jjj
`
fmt.Println(str)
输出为:
4.字符
字符串中的每一个元素,有两种
- uint8类型(byte),表示ASCII码
- rune类型,代表一个UTF-8字符,用于处理中文、日文等.实际上是一个int32
5.切片
※类似数组,但数据类型可以有函数
a:=make([]int,5)
a[0]=3
a[4]=4
fmt.Print(a[0:3])//前闭后开
初始化时,不能写成
b:=[9]int
或者
b:=int[9]
6.数据类型的转换
格式:
数据类型(变量)