变量类型和操作符

iota枚举

  • iota常量自动生成器,每隔一行自动累加一
  • iota给常量赋值使用
package main
import "fmt"


func main() {
    const (
        a = iota      // 0
        b = iota      // 1
        c = iota      // 2
    )

    fmt.Printf("a = %d, b = %d, c = %d", a, b, c)
}
  •  iota遇到const,重置为0
const d = iota
fmt.Println("d = ", d)
  •  可以只写一个iota
const (
    a = iota
    b
    c
)
  • 如果是同一行,值都一样
const (
    i = iota
    j1, j2, j2 = iota, iota, iota   // j1 2 3值一样
    k = iota
)

变量类型

类型名称长度默认值说明
bool 布尔类型 1 false 其值非真即假,不能用数字代替true或false
byte 字节型 1 0 utf8别名
rune 字符类型 4 0 专用于存储unicode编码,等价于uint32
int, uint 整型 4或8 0 32位或64位
int8, uint8 整型 1 0 -128~127, 0~255
int16, uint16 整型 2 0 -32768~32767, 0~65535
int32, uint32 整型 4 0 -21亿~21亿, 0~42亿
int64, uint64 整型 8 0  
float32 浮点型 4 0.0 小数点精确到7位
float64 浮点型 8 0.0 精确到15位
complex64 复数类型 8    
complex128 复数类型 16    
uintptr 整型 4或8   无符号整型,用于存放一个指针
string 字符串   "" utf-8字符串

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bool类型

var a bool
a = true


// 自动推导
var b = false
c := false

浮点型

var f1 float32
f1 = 3.14

f2 := 3.14

字符类型

// 字符可以赋值数字(对应的ascii码值),也可以是字符,字符必须用单引号引起来
var ch byte
ch = 97
// 输出格式化
fmt.Printf("%c, %d\n", ch, ch)	// a, 97

// 大小写转换
ch1 := 'A' + 32
ch2 := 'a' - 32

字符串类型

var a string
a = "hello world"

// 字符串的两种表示方式
// 双引号 ""
var str = "hello world \r\n"   // 转义字符有效
// 反引号 ``
var str1 = `hello world \r\n`   // 转移字符无效
// 反引号还能写多行
var str2 = `
    床前明月光,
    疑是地上霜。
    举头望明月,
    低头思故乡。
`

时间和日期类型

time包

time.Now().UnixNano()   // 获取1970年到现在的纳秒数

time.Time类型,用来表示时间

package main

import (
    "fmt"
    "time"
)

func main() {
    var timeNow time.Time
    timeNow = time.Now()
    fmt.Printf("%s", timeNow)
}

获取当前时间

  • now := time.Now()
  • time.Now().Day()
  • time.Now().Minute()
  • time.Now().Month()
  • time.Now().Year()

格式化

fmt.Printf("%02d/%02d/%02d %02d:%02d:%02d", now.Year()...)

// 必须使用 2006/01/02 15:05 格式化,这也是go诞生的时间
now.Format("2006/01/02 15:05")

单位

  • time.Duration 表示纳秒
  • time.Minute 表示分钟
  • time.Second  表示秒钟
  • ....等等等等

指针类型

  • 普通类型,变量存的就是值,也叫值类型

  • 获取变量的地址,用&,比如var a int, 获取a的地址,就用&a

  • 指针类型:变量存的是一个地址,这个地址存的才是值

  • 获取指针类型所指向的值,使用:*,比如:var p *int,使用 *p获取p指向的值

// 声明
var p *int
// 赋值,将指针指向a的地址
var a int = 10
 p = &a
// 赋值,修改对应地址里面的值
*p = 100    // 这里的*p就是a
// 取值
var b = *p

操作符

逻辑操作符

== 、 != 、 < 、 <= 、 > 、 >=

数学操作符

+ 、 - 、 * 、 / 等等

 

posted @ 2019-05-23 18:31  Jin同学  阅读(136)  评论(0)    收藏  举报