搞定Go语言之第二天

变量

var a int
var b bool 
var c int8

var (
	m int
    n string
)

var name string = "nazha"

func main(){
     
    age := 18//声明变量age同时初始化;编译器会根据右边的初始值推断出age是什么类型
}

常量

const PI = 3.1415926

const KB = 1024

iota

Go中借助iota来实现枚举

const (
		n1 = iota //0
		n2        //1
		n3        //2
		n4        //3
	)
  • iota在const关键字出现时将被重置为0
  • const中每新增一行常量声明将使iota累加一次
  • const声明的常量后面没有内容默认就跟上一行一致

基本数据类型

String

使用双引号表示字符串 "hello"

使用单引号表示字符   'h'

字符串的常用方法

整型

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

int是特殊的,会根据你的操作系统的位数来决定是int32还是int64

浮点型

float32 flot64

浮点数永远都是不精确.

  • 转换成字符串去做运算
  • 整体放大多少倍转换成整数进行运算

复数

complex64和complex128

布尔

var a bool//默认是false
var b = true

Go语言中布尔类型不能和其他类型做类型转换

byte和rune

英文字符用byte(ASCII码能表示的)   01010101 

rune(中文,UTF8编码)   01010101   01010101   01010101 

流程控制语句

IF语句

age := 20
if age>18{
     
    
}else if 20 > 18 {
     
    
}else{
     
    
}

//此时age只在if语句中有效
if age:=20;age>18{
     
    
}

for语句

    //标准for循环
    for i:=0;i<10;i++{
     
        
    }
    
    //类似while循环
    n := 10
    for n>0 {
     
        fmt.Println(n)
        n--
    }
    
    //无限循环
    for {
     
        
    }

switch和case

    n := 10
    switch n{
     
        case 1:
        ...
    case 2:
        ...
    }
    
    switch {
     
        case n>0:
        ...
        case n ==0:
        ...
    }

fallthrough

Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。

switch {
     
    case false:
        fmt.Println("The integer was <= 4")
        fallthrough
    case true:
        fmt.Println("The integer was <= 5")
        fallthrough
    case false:
        fmt.Println("The integer was <= 6")
        fallthrough
    case true:
        fmt.Println("The integer was <= 7")
        fallthrough
    case false:
        fmt.Println("The integer was <= 8")
    default:
        fmt.Println("default case")
    }

输出结果:

The integer was <= 5
The integer was <= 6
The integer was <= 7
The integer was <= 8

fallthrough不能用在switch的最后一个分支。

运算符

Go 语言内置的运算符有:

算术运算符
搞定Go语言之第二天_第1张图片

关系运算符
搞定Go语言之第二天_第2张图片

逻辑运算符
搞定Go语言之第二天_第3张图片

位运算符
搞定Go语言之第二天_第4张图片

赋值运算符
搞定Go语言之第二天_第5张图片
其他
在这里插入图片描述
案例:

以下假设A = 60 , B = 13 ,A的8位二进制:00111100 ,B的8位二进制:00001101

按位与运算符&:

A:   0 0 1 1 1 1 0 0 
B:   0 0 0 0 1 1 0 1
A&B: 0 0 0 0 1 1 0 0 
对应位比较,如果都为1,那么按位与的结果为1,否则为0


按位或运算符|:

A:   0 0 1 1 1 1 0 0 
B:   0 0 0 0 1 1 0 1
A|B: 0 0 1 1 1 1 0 1 
对应位比较,只要有一个为1,那么按位或的结果为1,否则为0


按位异或运算符^:

A:   0 0 1 1 1 1 0 0 
B:   0 0 0 0 1 1 0 1
A^B: 0 0 1 1 0 0 0 1 
对应位比较,只要不相同就为1,否则为0


左移运算符<<

A:   0 0 1 1 1 1 0 0 
A<<2: 1 1 1 1 0 0 0 0
A<<3: 1 1 1 0 0 0 0 0
各二进位全部左移n位,超出总位数就丢弃
在不丢弃的情况下,相当于10进制上乘以了2的n次方


右移运算符>>

A:   0 0 1 1 1 1 0 0 
A>>2: 0 0 0 0 1 1 1 1
A>>3: 0 0 0 0 0 1 1 1
各二进位全部右移n位,超出范围就丢弃
在不丢弃的情况下,相当于10进制上除以了2的n次方

你可能感兴趣的:(GO语言,go,go语言)