Golang 基数基本写法:
1】//全局变量 圆括号
2】//定义变量
3】//生成随机数
4】//接收键盘输入
5】循环语句
6】结构体(大坑:相同结构体不同的package下不可使用,需要引用相同package下的结构体)
7】设计和引用方法涵
package main
import (
"fmt"
"math/rand"
"time"
)
var ( //全局变量 圆括号内为同类型
x = 1
y = 2
z = 3
)
var ABC = 123 //全局变量
type objAAA struct { //结构体
a1 int
a2 float64
a3 string
}
func abc(x int,y string){ //定义方法函
return x+y
}
func main() {
//定义变量
var a int = 0
var b string = "bbb"
var c [3]int //3个数组
var d = false
var e = [...]int{1, 2, 3, 4, 5} //拓展型数组定义
c[0] = 1
fmt.Println("整型:", a) // 打印 整型
fmt.Println("字符串:", b) // 打印 字符串
fmt.Println("数组长度:", len(c)) // 打印 数组长度
fmt.Println("布尔型:", d) // 打印 布尔型(真、假)
fmt.Println("数组:", e) // 打印 数组
//引用结构体
// objAAA 这种情况下order的字段都是对应的默认零值
var order *objAAA = new(objAAA) //初始化 结构体
order.a1 = 10
order.a2 = 12.5
order.a3 = "Linwute"
//end
//引用方法涵
abc(1,2)
//生成随机数
rand.Seed(time.Now().Unix()) //生成随机数 需要给时间,不然每次都出现一样的值
var xx = rand.Intn(10) //构建随机数 rand.Intn()是固定的
fmt.Println("生成随机数:", xx) //打印
//end
//接收键盘输入
//var reader = bufio.NewReader(os.Stdin) //接收键盘输入
//var inputs, err = reader.ReadString('\n') //xxx, err = 为异常处理-必须
//fmt.Println("异常:", err) //打印
//fmt.Println("键盘输入:", inputs) //打印
////循环语句
var arrXX = [...]int{1, 2, 3, 4}
for i := 0; i < len(arrXX); i++ { //传统for 有安全问题
fmt.Print(arrXX[i])
}
fmt.Println("\n====== range")
for i := range arrXX { //ran ge 循环方法 安全性高
fmt.Println(arrXX[i])
}
fmt.Println("\n====== range")
for i, j := range arrXX { //索引 循环方法
fmt.Println(i, j) //i 为索引 j为值
}
fmt.Println("\n====== break")
for i := range arrXX { // 跳出循环
if arrXX[i] == 2 {
fmt.Println(arrXX[i])
break //停止
}
}
fmt.Println("\n====== switch")
var yy int = 1
switch yy {
case 1:
fmt.Println("switch:1")
fallthrough //落空执行到下一个 case
case 2:
fmt.Println("switch:2")
case 3:
fmt.Println("switch:3")
default:
fmt.Println("default")
}
}
//结构体(对象)
package main
import "log"
type arrXX struct { //定义结构体 (对象)
Id string
Uid string
objYY [1]struct { //数组形式
Y1 string
Y2 [1]string //数组形式
}
}
var Arr_XX arrXX //引用结构体 (整个数据都会存到 Arr_XX 中)全局模式
func main() {
var ArrZZ arrXX //引用结构体 (整个数据都会存到 Arr_XX 中)局部模式
Arr_XX.objYY[0].Y1 = "YYY1" //给结构体赋值
ArrZZ.Id = "1001" //给结构体赋值
X := funAAA(1, 2, "str").Id
log.Panicln(X) //打印
}
func funAAA(x int, y int, z string) arrXX { //定义 结构体模式方法涵 返回值为结构体模式
var name arrXX //引用结构体格式
name.Id = "101" //给 name 结构体赋值 (此时值仅存在name中)
name.Uid = "102"
name.objYY[0].Y1 = "103"
name.objYY[0].Y2[0] = "104" //数组形
return name //返回值结构体模式 name结构体和 arrXX结构体是一样的,不然报错哦
}