go学习代码合集

Posted yeah17981

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go学习代码合集相关的知识,希望对你有一定的参考价值。

暂时懒得把笔记搬运过来,先发几个简单代码吧,持续更新中

1、hello world

package main

import "fmt"

func main() 
	fmt.Println("hello World")
	var name string = "yeah17981"
	fmt.Printf("I am %s\\n", name)
	fmt.Print("hello World")


知识点:fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。

fmt.Println是输出且换行,fmt.Print是输出,fmt.Printf是按照指定格式输出

2、猜数字(1.0版)

package main

import "fmt"

func main() 
	var a, b int = 0, 90
	fmt.Println("现在进入猜数字游戏")
	for a != b 
		fmt.Print("请输入你猜测的整数:")
		fmt.Scanln(&a)
		fmt.Println("你猜测的数字为:", a)
		if a == b 
			fmt.Println("恭喜你,你猜对了,游戏结束!")
		 else 
			fmt.Println("不好意思,你猜错了,请继续游戏")
		
	

知识点:不压行的c++选手愤怒,为什么if的和else得一行,查了半天错误

fmt.Scanln是获取一行输入,fmt.Scan是获取输入(空格或换行分割),fmt.Scanf是获取输入,但是可以指定格式,go语言会根据格式解析参数

3、猜数字(2.0)

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func Min(x, y int) int 
	if x < y 
		return x
	
	return y


func Max(x, y int) int 
	if x > y 
		return x
	
	return y


func main() 
	var a, b int = 0, 100
	var l, r int = 0, 100
	rand.Seed(time.Now().UnixNano())//时间戳初始化随机数种子
	b = rand.Intn(b)
	fmt.Println("现在进入猜数字游戏")
	for a != b 
		fmt.Printf("请输入你猜测的数字(%d,%d):", l, r)
		fmt.Scanln(&a)
		fmt.Println("你猜测的数字为:", a)
		if a == b 
			fmt.Println("恭喜你,你猜对了,游戏结束!")
		 else 
			if a > b 
				fmt.Println("不好意思,您猜测的数字偏大,请继续游戏")
				r = Min(r, a)
			 else 
				fmt.Println("不好意思,您猜测的数字偏小,请继续游戏")
				l = Max(l, a)
			

		
	

知识点:go中的math.Max(Min)只能对float64操作,如果是整数,可以写个函数(好麻烦喔),因此Golang并不支持泛型(一个函数名对应一种参数的函数)

使用rand.Intn时,如果没有初始化随机数种子,重复运行代码的时候会发现数字没变,可以用时间戳初始化种子。rand.Int无需参数(返回一个非负的伪随机 int 类型的数),rand.Intn需要参数n(返回一个非负伪随机数,其值范围在半开区间 [0, n)。如果传入的 n <= 0,将会 panic

以上是关于go学习代码合集的主要内容,如果未能解决你的问题,请参考以下文章

awesome-go:很全的go语言资源合集

动画消消乐纯CSS加载/过渡动画学习笔记合集(1-50)

动画消消乐纯CSS加载/过渡动画学习笔记合集(1-50)

2021新版一线大厂 Go 面试题合集

全网最全的编程电子书大合集,超千本打包下载

狄兰·托马斯诗合集▷Do not go gentle into that good night