-
fyne中的配置及状态存储
在fyne中,有两种类型用于存储应用程序的数据,分别为Storage和PreferencesStorage是一种以文件的形式存储在磁盘上的能永久保存的储类型Preferences是一种以键值对的形式保存数据的存储类型StorageStorage是一种以文件的形式存储在磁盘上的能永久保存的储类型可以保存任何格式的文件使用应用程序的Storage()方法获得type Storage interface { RootURI() URI // 存储根目录,无法修改 // 在windows中为:`%APPDATA%/fyne/id/Documents` ...
2024-08-07 -
fyne的程序对象和窗口对象
程序对象使用"fyne.io/fyne/v2/app"包中的app.New()或app.NewWithID(id string)创建App是一个接口,在"fyne.io/fyne/v2"包中的app.go文件中定义APP接口中定义的方法 NewWindow(title string) Window :为应用程序创建一个指定标题的新窗口对象 OpenURL(url *url.URL) error :在默认浏览器程序中打开URL Icon() Resource :返回应用程序图标资源 Resource表示单个二进制资源 type Resource interfac...
2024-08-06 -
Go中的url解析
Go中的"net/url"实现了url的解析相关功能包函数 QueryEscape(s string) string :对s进行转码使之可以安全的用在URL查询里 url:"https://domain.com/s?wd=中+文"转化后为 "https%3A%2F%2Fdomain.com%2Fs%3Fwd%3D%E4%B8%AD%2B%E6%96%87" QueryUnescape(s string) (string, error) :将QueryEscape转码的字符串还原 会把%AB转换为字符串"\xab","+"转换为" " JoinPath(ba...
2024-08-05 -
Go随机数操作
在Go中,"math/rand"包实现了伪随机数生成器,在Go的1.22版本,官方库中在保持"math/rand"包更新的基础上新增了"math/rand/v2"包主要变更点在于性能优化(算法重写)、规范和统一、新的随机生成器和实现补充等在"math/rand/v2"包中几乎将所有函数进行了重新命名,并且新增了很多更强的随机算法,以至于该包并不向前兼容本文我们将学习最新的"math/rand/v2"包type Source表示一个生成均匀分布在范围[0, 1<<64)的int64的伪随机资源Source对于并发使用是不安全的 type Source interface { ...
2024-08-05 -
Go中的协程同步
由于go天然对并发的支持使得go在一些并发任务处理时表现优异,但是并发会存在临界资源问题,当多个协程来访问共享资源时资源是不安全的在一般场景中为了解决这个临界资源问题,可以使用channel通道来解决,但是当协程结构比较复杂时处理比较复杂易出错Go的官方sync包实现了传统编程语言中的“锁”,通过一个“锁”将共享资源锁住,防止其它协程的访问,以此来解决临界资源问题type Once表示只执行一次动作的对象 func (o *Once) Do(f func()) Do方法当且仅当第一次被调用时才执行指定函数,即使每次调用提供的f值不同 f没有参数和返回值 只有f返回后Do方法才会返回,如...
2024-08-05