Go学习 day01

Go

运行

package main

import "fmt"

func main() {
	fmt.Printf("hello world")
}
  • 输入go build会编译出一个exe文件,然后运行
  • go run main.go直接输出hello world

格式化打印

可以使用Printf来控制打印的输出结果

Printf的第一个参数必须是字符串

其中这个字符串可能包含像%v的格式化动词,它的值有第二个参数所替代

image-20220613162438336

image-20220613162458561

还可以使用Printf来对其文本,如%4v,向左填充4个宽度

正数向左填充,负数向右填充

image-20220613162755893

常量变量

  • const 常量
  • var 变量

声明多个变量或常量

  • var a = 10
    var b = 20
    
  • var (
    	a = 10
    	b = 20
    )
    
  • var a, b = 10, 20
    

自增运算符(与java不同)

go语言里没有++count

循环和分支

switch(与java不同)

fallthrough关键字,用来执行下一个case的body部分

func main(){
	var num = 12
	switch{
	case num == 13:
		fmt.Println("第一个")
	case num == 12:
		fmt.Println("第二个")
		fallthrough
	case num == 14:
		fmt.Println("第三个")
	}
}
第二个
第三个

循环(与java不同)

for后面没有跟条件就会无限循环

猜数

func main(){
	const tmp = 20
	var random = 0
	var n = 0
	for{
		n++
		random = rand.Intn(100)
		if tmp < random {
			fmt.Println("大")
			fmt.Println(random)
			continue
		}
		if tmp > random {
			fmt.Println("小")
			fmt.Println(random)
			continue
		}
		if tmp == random {
			fmt.Println("结束" , n,"次",random)
			break
		}
	}
}

变量和作用域

短声明

可以使用var来声明变量var count = 10,但是也可以使用短声明count := 10,效果相同。

短声名不能声明package作用域的变量

好处:是代码更短,可以在不能使用var的情况下使用

//正常声名	
var count = 0
	for count = 10;count > 0; count --{
		fmt.Println(count)
	}
//短声名	
for count := 10;count > 0; count --{
		fmt.Println(count)
	}
//短声名
if num := rand.Intn(3); num == 0 {
		fmt.Println("0")
	}else if num == 1 {
		fmt.Println("1")
	}else {
		fmt.Println("2")
	}
	switch num := rand.Intn(3); num{
	case 0:
		fmt.Println(0)
	case 1:
		fmt.Println(0)
	case 2:
		fmt.Println(0)
	}

实数

浮点数

声明浮点型变量
  • 只要数字含有小数部分,类型就是float64
  • 如果使用整数来初始,就必须指定var count float64 = 42
浮点数类型
  • float64(默认)
    • 64位,占用8字节
    • 双精度类型
  • float32
    • 占用4字节,精度比float64低
    • 单精度类型
单精度

要想使用单精度,必须声名

image-20220613173738765

image-20220613173755148

整数

go提供了10种整数类型,5种有符号类型int,5种无符号类型uint

与架构无关是8种:

类型取值范围内存
int8-128 至 1271字节
uint80 至 2551字节
int16-32768 至 327672字节
uint160 至 655352字节
int32-2147483648 至 21474836474字节
uint320 至 42949672954字节
int64-9223372036854775808 至 92233720368547758078字节
uint640 至 184467440737095516158字节

int和uint是针对目标设备优化的类型:

  • 树莓派或者老设备上,为32位
  • 新设备为64位
整数环绕

整数类型虽然不会像浮点类型那样因为舍入错误而导致不精确,但整数类型也有它们自己的问题,那就是有限的取值范围。在Go语言中,当超过整数类型的取值范围时,就会出现整数回绕(wrap around)现象。

例如,8位无符号整数uint8类型的取值范围为0~255,而针对该类型的增量操作在结果超过255时将回绕至0。

var red uint8 = 255
red++
fmt.Println(red)--- 打印出“0var number int8 = 127
number++
fmt.Println(number)--- 打印出“-128

时,就会出现整数回绕(wrap around)现象。

例如,8位无符号整数uint8类型的取值范围为0~255,而针对该类型的增量操作在结果超过255时将回绕至0。

var red uint8 = 255
red++
fmt.Println(red)--- 打印出“0var number int8 = 127
number++
fmt.Println(number)--- 打印出“-128
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值