当前位置: 首页 > news >正文

阿里云添加网站中国机械加工网站

阿里云添加网站,中国机械加工网站,淘宝网站建设教程视频教程,wordpress ftp上传文章目录 标准库概述regexp包锁和sync包自定义包和可见性基本格式导入外部安装包包的初始化 自定义包使用godoc自定义包的目录结构 标准库概述 在之前的部分已经用了很多和标准库有关的内容#xff0c;比如有fmt#xff0c;os这种功能 unsafe: 包含了一些打破 Go 语言“类型… 文章目录 标准库概述regexp包锁和sync包自定义包和可见性基本格式导入外部安装包包的初始化 自定义包使用godoc自定义包的目录结构 标准库概述 在之前的部分已经用了很多和标准库有关的内容比如有fmtos这种功能 unsafe: 包含了一些打破 Go 语言“类型安全”的命令一般的程序中不会被使用可用在 C/C 程序的调用中syscall-os-os/exec: os: 提供给我们一个平台无关性的操作系统功能接口采用类 Unix 设计隐藏了不同操作系统间的差异让不同的文件系统和操作系统对象表现一致os/exec: 提供我们运行外部操作系统命令和程序的方式syscall: 底层的外部包提供了操作系统底层调用的基本接口 regexp包 正则表达式常用于字符串中进行一些配置的匹配例如 func test1() {//目标字符串searchIn : John: 2578.34 William: 4567.23 Steve: 5632.18pat : [0-9].[0-9] //正则f : func(s string) string {v, _ : strconv.ParseFloat(s, 32)return strconv.FormatFloat(v*2, f, 2, 32)}if ok, _ : regexp.Match(pat, []byte(searchIn)); ok {fmt.Println(Match Found!)}re, _ : regexp.Compile(pat)//将匹配到的部分替换为##.#str : re.ReplaceAllString(searchIn, ##.#)fmt.Println(str)//参数为函数时str2 : re.ReplaceAllStringFunc(searchIn, f)fmt.Println(str2) }锁和sync包 在一些复杂的程序中通常通过不同线程执行不同应用来实现程序的并发。当不同线程要使用同一个变量时经常会出现一个问题无法预知变量被不同线程修改的顺序这通常被称为资源竞争指不同线程对同一变量使用的竞争显然这无法让人容忍那我们该如何解决这个问题呢 经典的做法是一次只能让一个线程对共享变量进行操作。当变量被一个线程改变时临界区我们为它上锁直到这个线程执行完成并解锁后其他线程才能访问它 在之前的map中由于性能的原因它实际上并不是现成安全的所以在并行访问一个共享的map资源的时候实际上是会出现错误 而在Go语言中这种锁的机制是通过sync包中的锁来完成的这意味着线程将会以有序的对同一个变量进行访问 sync.Mutex 是一个互斥锁它的作用是守护在临界区入口来确保同一时间只能有一个线程进入临界区 因此可以有下面的例子假设有一个共享资源需要被保护那么就可以借助锁来进行对应的保护 // 定义需要保护起来的成员 type test2Info struct {mu sync.Mutexstr string }func test2Update(i *test2Info) {i.mu.Lock()i.str hello goi.mu.Unlock() }func test2() {// 现在要对这个str进行修改那么就需要先加锁再解锁var i test2Infotest2Update(i) }相对简单的情况下通过使用 sync 包可以解决同一时间只能一个线程访问变量或 map 类型数据的问题。如果这种方式导致程序明显变慢或者引起其他问题我们要重新思考来通过 goroutines 和 channels 来解决问题这是在 Go 语言中所提倡用来实现并发的技术 自定义包和可见性 基本格式 import 的一般格式如下: import 包的路径或 URL 地址导入外部安装包 如果你要在你的应用中使用一个或多个外部包首先你必须使用go install在你的本地机器上安装它们 假设你想使用 http://codesite.ext/author/goExample/goex 这种托管在 Google Code、GitHub 和 Launchpad 等代码网站上的包 通过如下命令安装 go install codesite.ext/author/goExample/goex将一个名为 codesite.ext/author/goExample/goex 的 map 安装在 $GOROOT/src/ 目录下 通过以下方式一次性安装并导入到你的代码中 import goex codesite.ext/author/goExample/goex因此该包的 URL 将用作导入路径 包的初始化 程序的执行开始于导入包初始化 main 包然后调用 main() 函数 一个没有导入的包将通过分配初始值给所有的包级变量和调用源码中定义的包级 init() 函数来初始化。一个包可能有多个 init() 函数甚至在一个源码文件中。它们的执行是无序的。这是最好的例子来测定包的值是否只依赖于相同包下的其他值或者函数 init() 函数是不能被调用的 导入的包在包自身初始化前被初始化而一个包在程序执行中只能初始化一次 自定义包使用godoc godoc在显示自定义包中的注释也有很好的效果注释必须以 // 开始并无空行放在声明包类型函数前。godoc 会为每个文件生成一系列的网页 自定义包的目录结构 /home/user/goprogramsucmain.go (uc 包主程序)Makefile (ucmain 的 makefile)ucmainsrc/uc (包含 uc 包的 go 源码)uc.gouc_test.goMakefile (包的 makefile)uc.a_objuc.a_testuc.abin (包含最终的执行文件)ucmainpkg/linux_amd64uc.a (包的目标文件)
http://www.dnsts.com.cn/news/226022.html

相关文章:

  • 三河市网站建设四平网站设计公司
  • 建立网站导航栏的方法wordpress判断用法
  • 网站的风格个人网站备案怎么做
  • 合肥哪家做网站搜索引擎营销实践报告
  • 深圳制作网站培训账号注册登录立即注册
  • 自己做网站开网店全部游戏免费(试玩)不用下载
  • saas建站是什么意思平面设计的图
  • 本地搭建asp网站wordpress突然无法访问
  • 华久做网站世界杯现场直播
  • 中国没公司怎么做网站辽宁省建设监理协会网站
  • 网站建设电话销售说不需要网站被管理员权限
  • 网站建设-英九网络网站建设 跑业务
  • 江苏省交通建设局网站android开发环境
  • 南京网站制作报价国内永久免费crm系统在线
  • 网站建设中界面模板下载杭州杭州网站建设公司
  • 做门户网站公司公司网站怎么做才能有官网二字
  • 网站建设合同模板91075兴义做网站的
  • 怎么建设网站啊贵阳工程建设招聘信息网站
  • 速递物流系网站建设与维护wordpress 会员发帖
  • 北京免费网站建设适合乡镇开的十五种店
  • 网站建设补贴求推荐个网站
  • 山西电力建设一公司网站内容营销的方式
  • 手机网站底部漂浮代码网站建设的投资预算怎么写
  • 做网站应注意什么wordpress js失效
  • 昆明市网站制作公司中国建设传媒网
  • 做网站给菠菜引流wordpress修改页面固定连接
  • 企业网站搜索优化网络推广海外购物网站大全
  • 滑县住房城乡建设厅门户网站wordpress设定主页
  • 网站建设0doitwordpress 虚拟交易商城
  • 思帽网站建设深圳移动网站建设公司