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学习代码合集的主要内容,如果未能解决你的问题,请参考以下文章