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

网络域名申请条件windows优化大师怎么使用

网络域名申请条件,windows优化大师怎么使用,网页风格设计,成都中高风险地区名单最新这里会整理可能会使用到的命令行参数#xff0c;比如 go build、go run#xff0c;诸如此类。了解这些内容对我们工作会有什么帮助吗#xff1f;更多的时候#xff0c;是能让我们理解代码编译的意图#xff0c;或者#xff0c;给我们一种排查问题的手段。 比方说#x…这里会整理可能会使用到的命令行参数比如 go build、go run诸如此类。了解这些内容对我们工作会有什么帮助吗更多的时候是能让我们理解代码编译的意图或者给我们一种排查问题的手段。 比方说-race 属性go 语言 string 类型思考 博客中也有说到这个属性用来检测数据动态竞争。-test 属性go使用benchmark分析json库性能 中也有用到这个属性等等吧。 go build 编译 go 的可执行文件最终代码发布上线肯定需要执行这个指令。或者在项目的 makefile 里就已经写好了这个指令或者在 dockerfile 里。 ldflags -X 执行 go build 的时候可能就会遇到指定这个属性的情况。这个属性可以用来动态设置代码中的变量我们先通过一个例子来了解一下它的作用。 下面的例子中声明了两个包变量分别是版本号和应用名称。拿版本号来说应用每次部署都需要生成一个新的版本号我们需要在上线前把这个参数做指定。但如果靠硬编码的方式来处理每次上线都需要手动修改这个变量。 这种情况我们可以通过编译时动态设置的方式来修改这个变量的值。-X 的作用在这个时候就体现出来了在执行 go build 的时候指定这两个值。 package mainimport fmtvar version string var name string func main() {fmt.Println(version)fmt.Println(name) }go build 执行时进行包变量赋值 指定的赋值方式importpath.namevalue。通过包路径.变量名 的引用方式来定位包变量。结合例子我们在编译的时候指定了了变量 name 和 version 的值。 通过上述的例子可以看出-X 并不限制包变量是否可导出不可导出的变量也可以进行赋值。 go build -ldflags -X main.nametest -X main.version1.2.0 main.go这种指定包变量的场景经常会在一些框架代码中使用可以指定 git 的版本号也可以指定部署的机房环境。通过这种方式我们不再需要通过配置文件来修改这些变量简化了我们的开发。 如果要给项目的其他包变量赋值只需要替换包的名字就可以了。包的路径名称其实就是 import 的路径名称这个 import 的路径名称其实是和 go.mod 中 module 的声明对齐的。 重新创建一个 hello 包在包中声明了一个 hello 变量然后在 main 中调用 hello 包中的打印方法。我们演示一下给项目的其他包中赋值的过程。 类似的就是替换一下包名。编译执行输出的结果为 test。 go build -ldflags -X github.com/think-next/lesson/ldflags/hello.hellotest main.gogo tool nm 对于代码中包级别定义的变量我们还可以通过 go tool nm 进行查看。那上面的例子来说在控制台可以查看 hello 包中的定义的符号。 我们首先对项目做 go build 然后使用 go tool 工具解析编译后的可执行文件。然后执行 go tool nm 来解析包级别的变量 go build main.go使用 grep 过滤关键字中包含 hello 的行-i 属性是忽略大小写匹配。 ➜ ldflags git:(master) ✗ go tool nm main | grep -i hello111d0c0 D github.com/think-next/lesson/ldflags/hello..inittask112d0d0 D github.com/think-next/lesson/ldflags/hello.hello技巧 上面的例子中 -X 中指定的变量都是硬编码的常量但如果是正常业务这些常量一定是自定义的变量。 编译的时候自动获取当前 git 的版本号自动获取当前 go 的版本号… 比如说下面例子中的 main.version 要赋值的是当前编译 go 的版本号我们该如何执行呢 go build -ldflags -X main.nametest -X main.version1.2.0 main.go通过 shell 语句可以实现使用 (goversion)来获取当前的go的版本号。(go version) 来获取当前的 go 的版本号。(goversion)来获取当前的go的版本号。$() 在 shell 中表示 命令替换就是完成括号里面的指令用指令的执行结果来替换。 但下面的指令无法正常执行究其原因是因为 go version 执行的结果中包含空格。对于输出结果中包含空格的情况该如何解决呢。 go build -ldflags -X main.nametest -X main.version$(go version) main.go使用单引号将执行指令括起来就可以正常输出了。这让我想起来了awk 打印单双引号的例子。这些奇怪的 case主要看作者在开发工具的时候是如何解析参数的。 go build -ldflags -X main.nametest -X main.version$(go version) main.go
http://www.w-s-a.com/news/857508/

相关文章:

  • 代加工网站有哪些专门做网站关键词排名
  • 郑州做景区网站建设公司软件开发者模式怎么打开
  • 长沙企业网站建设哪家好做app一般多少钱
  • 南宁一站网网络技术有限公司网站开发技术应用领域
  • 公司网站建设方案ppt专业构建网站的公司
  • 深圳网站建设方维网络网站框架设计好后怎么做
  • 合肥网站建设过程网站栏目建设调研
  • 手机访问网站页面丢失北京电商平台网站建设
  • 郑州网站怎么推广中山 网站关键词优化
  • 国外试用网站空间网站建设与管理题目
  • 淄博网赢网站建设网站设计的技术选择
  • 建外贸网站 东莞厦门做网站最好的公司
  • 为您服务网站新网站做百度推广
  • 电子商务免费网站建设网站制作哪个好薇
  • 全面启动门户网站建设中小型企业建设一个网站大概需要多少钱
  • 建网站一般多少钱网站建设上传服务器步骤
  • 手机销售网站怎么做的网站推广优化建设方案
  • 做任务分享赚钱的网站德阳网站建设公司哪家好
  • 云南建设工程质量监督网站wordpress网站导航主题
  • 徐州网站建设哪家好薇手机开源网站代码
  • 更新网站要怎么做呢泰安市58同城招聘网
  • 溧阳网站建设价格企业网站设计费用
  • 我建设的网站打开很慢河北住房和城乡建设厅网站卡
  • 门户网站广告的特点有网站的建设初步定位
  • 建设网站第一步网页建设方案
  • 网站开发需要那些人才wordpress 小工具原理
  • 广州建设局官方网站佛山高端网站制作公司
  • 东莞哪里能学建设网站网站备案值得吗
  • 中山 网站建设 骏域小程序开发课程
  • 北京网站建设成都微商城app官方下载