1.基础文件读取
2.切片使用 ,添加
3.随机数据使用和time时间方法使用
4.信道的使用基本知识
//channel 练习
package main
import(
"fmt"
"os"
"bufio"
"math/rand"
"time"
"strings"
)
type Person struct{
Name string
Age int
Address string
}
var randStringPath string = "e:/randInfo.txt"
func main(){
//fmt.Println(CreatePerson(10))
peopleChan := make(chan Person , 10)
for _, val := range CreatePerson(10) {
peopleChan <- val
}
fmt.Println("填充完成:",peopleChan)
// 信道填充完成必须要关闭 要不遍历就会报错
close(peopleChan)
fmt.Println("----------开始遍历信道---------")
for val := range peopleChan {
fmt.Println(val)
}
}
func CreatePerson( nu int) []Person {
PersonSplice := make([]Person,nu)
//1. 读取文件信息
personInfo := make([]string, 0)
fileP,err := os.OpenFile(randStringPath,os. O_RDONLY,0666)
if err != nil {
return PersonSplice
}
defer fileP.Close()
reader := bufio.NewReader(fileP)
var rdStr string
for {
rdStr,err = reader.ReadString('\n')
if err != nil {
break
}
personInfo =append(personInfo,rdStr)
}
//2. 随机种子设置和数据填充
rand.Seed(time.Now().UnixNano())
for idx := 0; idx < len(PersonSplice); idx++ {
randId := rand.Intn(len(personInfo))
oneInfoStr := personInfo[randId]
oneInfoArr := strings.Split(oneInfoStr,":")
if len(oneInfoArr)<2 {
continue
}
p := Person{
Name:oneInfoArr[0],
Age:randId,
Address:oneInfoArr[1],
}
PersonSplice[idx] = p
}
return PersonSplice
}
读取文件内容:【 e:/randInfo.txt"】
萧XX: 台北市民生东路三段128号14F
陶是否莹: 台北市罗斯福二段102号5F
ZIP爽肤水: 台北市南港路三段48号10F
范分机玮: 台北市忠孝东路一段112号4F
WE发顺丰W: 台北市忠孝东路六段465号4F
发送力宏: 台北市光复北路11巷35号6F
戴爽肤水: 台北市光复南路65号10F
客户李彩昆仑: 香港市尖沙俎广东道100号8楼
陆可好看毅:北京朝阳区北四环中路6号华亭家园D座(100012)
周快迅: 北京海淀区北三环中路77号(100080)
g非俐: 北京丽京花园别墅
与顺义: 机场路杨林大道出口
那io英结婚后: 刘蓓、零点乐队王笑冬--丽斯花园
顺归结于义:区天竺镇天竺村
王经理瀚宇:嘉林花园
朝太阳突然阳:将台赵家村
张放入国认同:紫玉山庄朝阳区紫玉东路1号
陈oi道明、宋豆腐干豆腐祖英:冠城园马甸桥西北角
朴klp、刘交流交流烨:炫特区朝阳区红领巾公园东面十里堡1号
孙规拉卡拉天:世纪宝鼎公寓朝阳区亚运村东2公里
梁连接辉:东方银座 东城区东直门桥东南角
曹 还款卡:中国第一商城 朝阳区朝阳门外小庄6号,京广中心东500米
周客户依然有:星城国际中心 位于朝阳区酒仙桥路大山子环岛东南侧
人员让他冰冰:风景线家园朝阳区嘉琳路