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

如何安装网站模板网站外链多的危害

如何安装网站模板,网站外链多的危害,长春做网站建设的公司,深圳高端别墅设计公司by sheepbao 主要大概介绍go语言的历史和特性#xff0c;简单的入门。 来历 很久以前#xff0c;有一个IT公司#xff0c;这公司有个传统#xff0c;允许员工拥有20%自由时间来开发实验性项目。在2007的某一天#xff0c;公司的几个大牛#xff0c;正在用c开发一些比较繁…by sheepbao 主要大概介绍go语言的历史和特性简单的入门。 来历 很久以前有一个IT公司这公司有个传统允许员工拥有20%自由时间来开发实验性项目。在2007的某一天公司的几个大牛正在用c开发一些比较繁琐但是核心的工作主要包括庞大的分布式集群大牛觉得很闹心后来c委员会来他们公司演讲说c将要添加大概35种新特性。这几个大牛的其中一个人名为Rob Pike听后心中一万个xxx飘过“c特性还不够多吗简化c应该更有成就感吧”。于是乎Rob Pike和其他几个大牛讨论了一下怎么解决这个问题过了一会Rob Pike说要不我们自己搞个语言吧名字叫“go”非常简短容易拼写。其他几位大牛就说好啊然后他们找了块白板在上面写下希望能有哪些功能详见文尾。接下来的时间里大牛们开心的讨论设计这门语言的特性经过漫长的岁月他们决定以c语言为原型以及借鉴其他语言的一些特性来解放程序员解放自己然后在2009年go语言诞生。 思想 Less can be more 大道至简,小而蕴真 让事情变得复杂很容易让事情变得简单才难 深刻的工程文化 优点 自带gc。静态编译编译好后扔服务器直接运行。简单的思想没有继承多态类等。丰富的库和详细的开发文档。语法层支持并发和拥有同步并发的channel类型使并发开发变得非常方便。简洁的语法提高开发效率同时提高代码的阅读性和可维护性。超级简单的交叉编译仅需更改环境变量。花了我两天时间编译一个imagemagick到arm平台内含完善、全面的软件工程工具。Go语言自带的命令和工具相当地强大。通过它们我们可以很轻松地完成Go语言程序的获取、编译、测试、安装、运行、运行分析等一系列工作这几乎涉及了开发和维护一个软件的所有环节。hello package mainfunc main() {println(hello, sewise) } type 主要讲讲特有的类型其他基本类型不做介绍 slice 切片可以理解为动态数组类似c的vector 声明一个slice var slice []T// 如var ints []int slice的追加 ints append(ints, 1) ints append(ints, 2, 3, 4, 5) slice的截取 newInts1 : ints[2:3] newInts2 : ints[2:] newInts3 : ints[:4] map 字典键值对 var json map[string]string interface 接口方法的集合,是一种合约 栗子 声明一个bird接口 var bird interface {fly() } 声明一个hen对象(实现bird接口) type hen struct {weight inthasFeather bool }func (h hen) fly() {fmt.Println(iI can fly) }func (h hen) eat() {h.weightfmt.Println(yes, I can eat) } 声明一个 pig 对象未实现 bird 接口因为 pig 不会 fly type pig struct {age intweignt inthasFeather bool }func (p pig) run() {fmt.Println(I can run) }func (p pig) eat() {p.weight 100fmt.Println(Yes, I can eat so much) }func (p pig)sleep(){fmt.Println(I slept all my life) }// pig cant flychannel 通道轻量集队列传递某种类型的值的通道 var ch chan int ch make(chan int, 1) 往ch写入一个数据 ch- 8888 从ch读取数据 out : -ch 特性 channel是有长度的当channel的缓冲为满时再往里写入就会阻塞当channel的缓冲为空时从channel读就会阻塞 package mainimport (fmttime )func main() {ch : make(chan int)fmt.Println(ch len:, len(ch))go func() {// 往缓冲满的channel里写数据阻塞// ch - 1// 从缓冲为空的channel里读数据阻塞-chfmt.Println(I am in minor goroutine)}()fmt.Println(I am in main goroutine)time.Sleep(2 * time.Second) } 当长度为 0 是就是不带缓冲的 channel 长度大于0就是带缓冲的 channel 并发 关键字go 启动 go 程 一个普通的函数或方法调用前加上关键字 go即可启动一个 goroutine go func() {fmt.Println(start func)time.Sleep(120*time.Second) }() 竞争条件检测 -race race.go package mainimport (fmttime )func main() {a : 1go func() {a 2}()a 3fmt.Println(a is , a)time.Sleep(2 * time.Second) } 检测执行go run -race race.go a is 3WARNING: DATA RACE Write at 0x00c420072188 by goroutine 6:main.main.func1()/Users/bao/program/go/gowork/hello/src/research/race.go:11 0x3bPrevious write at 0x00c420072188 by main goroutine:main.main()/Users/bao/program/go/gowork/hello/src/research/race.go:13 0x9fGoroutine 6 (running) created at:main.main()/Users/bao/program/go/gowork/hello/src/research/race.go:12 0x8eFound 1 data race(s) 结果分析 goroutine6运行到第11行和main goroutine运行到13行的时候触发竞争了。而且goroutine6是在第12行的时候产生的。 package 包的管理关键字importGOPATH gopath gopath是一个路径列表存放go项目工程 GOPATH文件目录结构 ├── bin 二进制文件目录 ├── pkg 编译好的库文件目录 └── src 源码目录 平常项目的目录结构 ├── bin 二进制文件目录 ├── pkg 编译好的库文件目录 └── src 源码目录├── main 入口函数目录└── vendor 当前项目的库目录└── sheepbao.com└── glog import 比如上面的项目我要在main.go引入glog包 package main// 引入glog包 import sheepbao.com/glogfunc main() {glog.Println(test) } go的工程工具简介 test go的命令工具 test,用来做测试 单元测试 go test 只测试函数名被它正确匹配的测试函数 go test -v -runFrench|Canal 栗子 add.go package testfunc addOne(i int) int {return i 1 } add_test.go package testimport testingfunc TestAddOne(t *testing.T) {result : addOne(1)if result ! 2 {t.Error(11!2)} } baobaoMac test$ go test -v .RUN TestAddOne --- PASS: TestAddOne (0.00s) PASS ok _/Users/bao/program/go/gowork/hello/src/research/test 0.006s 基准测试 go test -bench. 内存的分配情况 go test -benchFuncName -benchmem 栗子 stringsCon.go package benchimport (fmt )func Sprintf(s1, s2, s3 string) string {return fmt.Sprintf(%s%s%s, s1, s2, s3) }func AddString(s1, s2, s3 string) string {return s1 s2 s3 }stringCon_test.go package benchimport testingvar (s1 make it run!s2 make it right!s3 make it fast! )func BenchmarkSprintf(b *testing.B) {for i : 0; i b.N; i {Sprintf(s1, s2, s3)} }func BenchmarkAddString(b *testing.B) {for i : 0; i b.N; i {AddString(s1, s2, s3)} }go test -bench. baobaoMac bench$ go test -bench. testing: warning: no tests to run BenchmarkSprintf-4 5000000 349 ns/op BenchmarkAddString-4 20000000 61.7 ns/op PASS ok _/Users/bao/program/go/gowork/hello/src/research/bench 3.414s 样本测试 package etimport (fmt )func ExampleHello() {fmt.Println(hello, sewise)// Output: hello, sewise } baobaoMac example$ go test -v .RUN ExampleHello --- PASS: ExampleHello (0.00s) PASS ok _/Users/bao/program/go/gowork/hello/src/research/example 0.006s 如果把上面的// Output: hello, sewise改为// Output: hello, sewis 则样本测试不能通过 baobaoMac example$ go test -v .RUN ExampleHello --- FAIL: ExampleHello (0.00s) got: hello, sewise want: hello, sewis FAIL exit status 1 FAIL _/Users/bao/program/go/gowork/hello/src/research/example 0.006s pprof go的命令工具 pprof用来性能分析内存使用泄露和cpu消耗 go tool pprof 查看cpu使用 go tool pprof http://localhost:8089/debug/pprof/profile 终端查看可视化(原是svg文件下图为截图) 查看内存使用 go tool pprof http://localhost:8089/debug/pprof/heap 终端查看 可视化(原是 svg 文件下图为截图 go tool pprof --text http://localhost:6060/debug/pprof/heap go命令教程 资料 http://www.csdn.net/article/2012-07-04/2807113-less-is-exponentially-more http://www.jianshu.com/p/91e40c3e3acb?hmsrtoutiao.ioutm_mediumtoutiao.ioutm_sourcetoutiao.io http://smallsoho.com/2016/11/20/Go简明教程.html?hmsrtoutiao.ioutm_mediumtoutiao.ioutm_sourcetoutiao.io 大牛真身 最大牌的当属B和C语言设计者、Unix和Plan 9创始人、1983年图灵奖获得者Ken Thompson这份名单中还包括了Unix核心成员Rob Pikego语言之父、java HotSpot虚拟机和js v8引擎的开发者Robert Griesemer、Memcached作者Brad Fitzpatrick等等。 功能 规范的语法不需要符号表来解析垃圾回收独有无头文件明确的依赖无循环依赖常量只能是数字int和int32是两种类型字母大小写设置可见性letter case sets visibility任何类型type都有方法不是类型没有子类型继承不是子类包级别初始化以及明确的初始化顺序文件被编译到一个包里包package-level globals presented in any order没有数值类型转换常量起辅助作用接口隐式实现没有“implement”声明嵌入不会提升到超类方法按照函数声明没有特别的位置要求方法即函数接口只有方法没有数据方法通过名字匹配而非类型没有构造函数和析构函数postincrement如i是状态不是表达式没有preincrement(i)和predecrement赋值不是表达式明确赋值和函数调用中的计算顺序没有“sequence point”没有指针运算内存一直以零值初始化局部变量取值合法方法中没有“this”分段的堆栈没有静态和其它类型的注释没有模板内建string、slice和map数组边界检查
http://www.zqtcl.cn/news/645165/

相关文章:

  • 一键网站制作机关网站建设建议
  • 快站公众号工具台州网站制作系统分析怎么写
  • 品牌网站制作方案如何写推广软文
  • o2o营销seo薪酬如何
  • 网站开发公司 网站空间推广网站制作
  • 鞍山网站制作小程序WordPress网盘下载插件
  • 保山市建设厅官方网站郑州建设信息网站
  • clh网站建设公司h5网站源代码
  • 做装修的网站怎么做好服装市场调网站建设的目的
  • 佛山网站建站电子工程网名又知道你是做工程
  • 桐乡网站二次开发商城购物网站建设
  • 大连微网站制作公司网页多钱
  • 郑州网站托管助企网络营销推广合作
  • 做电商网站用什么软件企业网站建设方案范本
  • o2o商城网站搭建潍坊定制网站搭建
  • 网站建设费用说明青岛网站建设方案公司
  • 佛山市建设企业网站服务机构优化seo是什么
  • 仿70网站分类目录源码市场营销策划ppt免费模板
  • 广东圆心科技网站开发网站模板设计网页程序代码
  • 网站平台定制开发一级a做爰网站下载
  • 网站如何做流媒体wordpress导出软件
  • 电商网站流程图esp8266做网站
  • 细胞医疗 网站模版免费网址软件
  • app地推网企业seo解决方案
  • php网站转移网吧手机网站模版
  • 北京建设教育网站今天的国内新闻
  • 江苏省建设银行网站天心区网站建设公司
  • 网站分享设计网站备案收费么
  • 手机网站专题关于asp sql网站开发的书籍
  • 网站建设属于什么领域小米发布会在哪里看