go 语言学习框架

xiaojun1195 · · 2476 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

go 语言学习框架 2021.6.26 ###感悟:创新和效率是先进的两个方向。达不到专业水平,无意义-因为没人会为业余水平付费。 ### 一、对文本文件进行读写 参考文章:https://studygolang.com/articles/2073?fr=sidebar >1.覆盖写入 2.追加写入 3.整体读出 4.按行读出 ```go package main import ( "bufio" //缓存IO "fmt" "io" "io/ioutil" //io 工具包 "os" ) func check(e error) { if e != nil { panic(e) } } /** * 判断文件是否存在 存在返回 true 不存在返回false */ func checkFileIsExist(filename string) bool { var exist = true if _, err := os.Stat(filename); os.IsNotExist(err) { exist = false } return exist } /** from: http://www.isharey.com/?p=143 */ func main() { var wireteString = "测试n" var filename = "./output1.txt" var f *os.File var err1 error /***************************** 第一种方式: 使用 io.WriteString 写入文件 ***********************************************/ if checkFileIsExist(filename) { //如果文件存在 f, err1 = os.OpenFile(filename, os.O_APPEND, 0666) //打开文件 fmt.Println("文件存在") } else { f, err1 = os.Create(filename) //创建文件 fmt.Println("文件不存在") } check(err1) n, err1 := io.WriteString(f, wireteString) //写入文件(字符串) check(err1) fmt.Printf("写入 %d 个字节n", n) /***************************** 第二种方式: 使用 ioutil.WriteFile 写入文件 ***********************************************/ var d1 = []byte(wireteString) err2 := ioutil.WriteFile("./output2.txt", d1, 0666) //写入文件(字节数组) check(err2) /***************************** 第三种方式: 使用 File(Write,WriteString) 写入文件 ***********************************************/ f, err3 := os.Create("./output3.txt") //创建文件 check(err3) defer f.Close() n2, err3 := f.Write(d1) //写入文件(字节数组) check(err3) fmt.Printf("写入 %d 个字节n", n2) n3, err3 := f.WriteString("writesn") //写入文件(字节数组) fmt.Printf("写入 %d 个字节n", n3) f.Sync() /***************************** 第四种方式: 使用 bufio.NewWriter 写入文件 ***********************************************/ w := bufio.NewWriter(f) //创建新的 Writer 对象 n4, err3 := w.WriteString("bufferedn") fmt.Printf("写入 %d 个字节n", n4) w.Flush() f.Close() } ``` ### 二、打开文件目录 保存 ### 三、界面功能 go walk使用记录(一) sthahahaa 2019-04-29 13:36:50 9427 收藏 1 分类专栏: go图形编程 文章标签: golang walk GUI编程 版权 ### 1、go walk库可以做什么 - 为什么用go walk:想开发一些图形化工具,工作当中很多时候还是有小工具需求的。 ### 2、前置注意点 官网https://github.com/lxn/walk: "Go 1.7.x doesn't work with walk anymore, Make sure you use Go 1.8.x or later." ### 3、流程记录 安装walk库 go get https://github.com/lxn/walk 安装编译时依赖的库(rsrc,官网给出的定义是"Tool for embedding binary resources in Go programs.",这个是把资源二进制文件打入到go程序中,比如下文的manifest文件) go get github.com/akavel/rsrc .manifest后缀文件放在源码main函数同级目录. .maifest文件直接可以在walk官网拷贝,这里照搬过来。 ```go <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> </dependentAssembly> </dependency> <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application> </assembly> ``` 编译go build需要的syso文件。 rsrc -manifest test.manifest -o rsrc.syso 开发程序,官网demo ```go package main import ( "github.com/lxn/walk" "github.com/lxn/walk/declarative" "strings" ) func main() { var inTE, outTE *walk.TextEdit MainWindow{ Title: "SCREAMO", MinSize: Size{600, 400}, Layout: VBox{}, Children: []Widget{ HSplitter{ Children: []Widget{ TextEdit{AssignTo: &inTE}, TextEdit{AssignTo: &outTE, ReadOnly: true}, }, }, PushButton{ Text: "SCREAM", OnClicked: func() { outTE.SetText(strings.ToUpper(inTE.Text())) }, }, }, } Run() } ``` ### go build -ldflags="-H windowsgui" -ldflags="-H windowsgui" 是为了隐藏黑色的cmd界面。 不加默认启动2个界面 ### 扩展 在网上看到了有人分享了一个很好的小软件(例子的地址:https://studygolang.com/articles/10755),就是用walk写的,可以学到很多写法,效果图如下。 ~ ![image](d:/bb.jpg) ——————— ### 版权声明:本文为CSDN博主「sthahahaa」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/bw761813/article/details/89673030 ### 四、处理图像 创建、粘贴、裁剪 ### 五、excel处理 > 1.tealeag\xlsx, > 2.Excelize ### 六、网络 调用百度 ### 七、字符串处理 ### 八、正则表达式 ### 九、鼠标键盘控制 ### 十、时间 ```go "time" time.Sleep(5e9), time.Sleep(8 * time.Second) ``` ### 十一、调用第三方包(B站讲解) 1.go modules 教程地址:https://b23.tv/BV1w64y197wo ### 十二、反射讲解(B站讲解) 教程地址:https://b23.tv/BV1V5411T7NH ### 十三、如何与其他语言联合使用 ### 十四、并行处理 如何处理速度更快

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2476 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传